Re: error_page 404 403 =200 /index.php; выдаёт 200 но не index.php :(

Alexey Karagodov karagodov at gmail.com
Mon Sep 24 21:25:54 MSD 2007


сталкивался с подобным: решение:                 location
     /FAILURE {
                        internal;
                        proxy_set_header                Host
           $host;
                        proxy_set_header                X-Real-IP
            $remote_addr;
                        proxy_set_header                X-Forwarded-For
            $proxy_add_x_forwarded_for;
                        #$remote_addr;
#                       proxy_redirect                  false;
                        proxy_redirect
http://localhost/index.html     http://$host/index.html;
                        proxy_pass
http://localhost/index.html;
                }

                location                        /MISSING {
                        internal;
                        rewrite                         ^(.*)
            http://$host/           break;
                }

ключевле слово - internal
и в самом конце server/location указываю error_page какой мне надо
2007/9/24, Name Last name <deepmindster at gmail.com>:
>
> Доброго времени суток.
>
> error_page 404 403 =200 /index.php;
>
> location / {
>   root /some/path/;
>   index index.php;
> }
>
> запрос: http://web1.server/something
>
> судя по заголовкам, эта конструкция выдаёт ответ HTTP/1.x 200 OK
>
> Но браузер показывает страничку Not found.
>
> Что странно, поскольку хотелось добиться показа индексной странички в
> случае 403 и 404.
>
> Желаемого результата удалось добится написав error_page 403 404 =200
> http://web1.server/index.php; . Собственно, цель достигнута. Но вопрос
> остался не до конца ясным: так и должно быть, или, возможно дело в том, что
> error_page указан до директивы root?
>
> Ниже конфиг для этого сервера.
>
>    server {
>         listen       192.168.0.20:80;
>         server_name  web1.server;
>
>         rewrite         ^/(.*)/(.*).html$       /view_video.php?viewkey=$1&title=$2
> last;
>         rewrite         ^/flvideo/flvplayer.swf$        /pl.php last;
>         rewrite         "^/(flvideo|thumb|members|la1vc2b4ag3)/(.+)$"
> http://media1.server/$1/$2 permanent;
>
>         access_log /var/log/nginx/web1.server.access.log  main;
>
>         error_page 403 404 =200 /index.php;
>
>         location / {
>             root        /srv/www/vhosts/server.com;
>             index       index.php;
>         }
>
>         location /swfs {
>             internal;
>             root /srv/www/vhosts/server_internal;
>         }
>
>         location ~ \.php$ {
>             proxy_pass         http://127.0.0.1:80;
>             proxy_redirect     off;
>
>             proxy_set_header   Host             $host;
>             proxy_set_header   X-Real-IP        $remote_addr;
>             proxy_set_header   X-Forwarded-For
> $proxy_add_x_forwarded_for;
>
>             client_max_body_size       506m;
>             client_body_buffer_size    128k;
>
>             proxy_connect_timeout      3005;
>             proxy_send_timeout         3005;
>             proxy_read_timeout         3005;
>
>             proxy_buffer_size          4k;
>             proxy_buffers              4 32k;
>             proxy_busy_buffers_size    64k;
>             proxy_temp_file_write_size 64k;
>
>         }
>
>         location ~ /\.ht {
>             deny all;
>         }
>     }
>
> Спасибо,
> Андрей.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070924/c1712d92/attachment.html>


More information about the nginx-ru mailing list