Re: не работает error page ?

Igor Sysoev igor на sysoev.ru
Вт Апр 27 15:49:51 MSD 2010


On Tue, Apr 27, 2010 at 06:29:27AM -0400, harius wrote:

> в связи с модернизацией движка сайта нужно отвечать поисковика 200 на запрошенную старую ссылку.
> вроде все просто, смотрим в доку и пишем:
> 
> error_page   404  =200  /404;  # /404 - урл отдает спец страничку с кодом 200
> 
> интегрируем в конфиг:
> 
> limit_zone   myzone  $binary_remote_addr  10m;
> proxy_cache_path /home/xxx/domains/xxx/cache/proxy levels=1:2 keys_zone=static:250m;
> proxy_cache_path /home/xxx/domains/xxxx/cache/maps/jams levels=2:2 keys_zone=jams:250m inactive=15m;
> 
> server {
>     listen xxx:80;
>     server_name xxx;
>     
>     limit_conn   myzone  10;
>     
>     access_log /var/log/nginx/domains/xxx.log combined;
>     
>     charset utf-8;
>     
>     set $tile_root /home/xxx/domains/xxx/cache/maps/tiles;
>     set $proxied_uri http://xxx;
>     set $xmlrpc_proxied_uri http://xxx/points;
>     set $editpoints_proxied_uri http://xxx/poimanager;
>     
>     location ~* .*\/map\/navitms.fcgi$ {
>         set $fcgi_uri $uri;
> 
>         if ($args ~* "^t=([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}),([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}),([0-9]{2})$") {
>             set $tile_path $1/$5/$2/$6/$3/$7/$4/$8/$9.png;
>             rewrite ^.*$ /map/tiles/$tile_path last;
>             }             
>         if ($args ~* "^(j=[0-9]{8},[0-9]{8},[0-9]{2})(,[0-9]+)?$") {
>             set $args $1;
>             rewrite ^.*$ /map/jams/ last;
>             }
>                                                                            
>         return 404;
>         }
>     
>     location ~ (.*/img/poi/).*\.gif$ {
>         root /home/xxx/domains/xxx/html;
>         try_files $uri $1/1.gif =404;
>         }
> 
>     location /navitel/theme/navitel {
>         root /home/xxx/domains/xxx/html/map;
>         }
>                                     
>     location /map {
>         index manage.html;
>         root /home/xxx/domains/xxx/html;
>         }
>     
>     location /map/points {
>         proxy_cache off;
>         proxy_pass $xmlrpc_proxied_uri?$args;
>         }
>                                             
>     location /map/poimanager {
>         proxy_cache off;
>         proxy_pass $editpoints_proxied_uri?$args;
>         }
>     
>     location @proxy_tiles {
>         proxy_pass        $proxied_uri$request_uri;
>         proxy_store_access   user:rw  group:rw;
>         proxy_store       $tile_root/$tile_path;
>         }
>                                                    
>     location ^~ /map/tiles/ {
>         internal;
>         alias $tile_root/;
>         if_modified_since before;
>         try_files $uri @proxy_tiles;
>         }
>                                                                                                                    
>     location = /map/jams/ {
>         internal;
>         proxy_cache_valid  200 302  5m;
>         proxy_cache       jams;
>         proxy_pass        $proxied_uri$fcgi_uri?$args;
>         }
>     
>     location / {
>         proxy_pass http://localhost:8080;
>         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 500m;
>         # error_page   404 = /404; # все равно выдает 404 код

http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru