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

Evgeny Stepanischev se at lixil.ru
Fri Sep 8 11:41:39 MSD 2006


Добрый день!

Есть вот такой файл конфигурации:

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)$ {
        }
              
        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;
        }
    }


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


Т.е. чтобы
http://site.com/test.exe  пользователь  скачивал  нормально, если этот
файл  есть  или,  если  файла  нет, получал красиво оформленную 404 из
движка.

Бился, бился, пока не выходит каменный цветок.

Заранее спасибо!






More information about the nginx-ru mailing list