Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev ][Date Next ][Thread Prev ][Thread Next ][Date Index ][Thread Index ]
Re: логика обработки 404
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