логика обработки 404

Igor Sysoev is at rambler-co.ru
Fri Sep 8 11:59:35 MSD 2006


On Fri, 8 Sep 2006, Evgeny Stepanischev wrote:

>
> Добрый день!
>
> Есть вот такой файл конфигурации:
>
> server {
>
>        listen xxx.xxx.xxx.xxx:80;
>
>        server_name one.site.com two.site.com;
>
>        charset utf-8;
>
>        root /path/to/sites/$host;
>
>        location ~ \.(gif|jpg|jpeg|png|ico|mq4|ex4|mqh|txt|zip|dll|js|swf|ico|doc|asx|asf|wmv|pdf|exe)$ {

              error_page  404 = /404;

>        }
>
>        location ~ \.(html|css)$ {
>           ssi on;
>           ssi_types text/css;
>
>           expires off;
>        }
>
>        location / {
>           fastcgi_pass   unix:/tmp/php.fcgi;
>           fastcgi_intercept_errors on;
>
>           fastcgi_param  SCRIPT_FILENAME   /path/to/sites/$host/engine.php;
>           fastcgi_param  DOCUMENT_ROOT    /path/to/sites/$host;
>           fastcgi_param  REDIRECT_URL     $fastcgi_script_name;
>           fastcgi_param  QUERY_STRING     $query_string;
>           fastcgi_param  REQUEST_METHOD   $request_method;
>           fastcgi_param  CONTENT_TYPE     $content_type;
>           fastcgi_param  CONTENT_LENGTH   $content_length;
>           fastcgi_param  REDIRECT_STATUS  200;
>           fastcgi_param  REMOTE_ADDR      $remote_addr;
>        }

          location = /404 {
             fastcgi_param  SCRIPT_FILENAME  /path/to/sites/$host/engine.php;
             fastcgi_param  REDIRECT_URL     $request_uri;
             ...
          }

>    }
>
>
> Надо   сделать   так,   чтобы   для   404  на  файлах  (location,  где
> обрабатываются  всякие  там gif, jpg, png, плюс html и css) управление
> передавалось на /path/to/sites/$host/engine.php, причём в redirect_url
> был URL на который зашёл пользователь.
>
>
> Т.е. чтобы
> http://site.com/test.exe  пользователь  скачивал  нормально, если этот
> файл  есть  или,  если  файла  нет, получал красиво оформленную 404 из
> движка.


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





More information about the nginx-ru mailing list