Hello!
On Thu, Oct 18, 2012 at 05:56:23PM +0400, habich99@xxxxxxx wrote:
Доброго времени суток всем.
Существует примерно следующая конфигурация:
server {
listen 80;
server_name site.com;
include /etc/nginx/conf.d/error_pages.conf;
[...]
location /error_pages/ {
internal;
root /var/www/;
}
}
$ cat /etc/nginx/conf.d/error_pages.conf
error_page 400 /error_pages/400.html;
error_page 401 /error_pages/401.html;
error_page 402 /error_pages/402.html;
[...]
Все страницы ошибок кроме 400 обрабатываются нормально.
Если выполнить запрос типа: http://site.com/test%00.php - nginx
отдаёт стандартную страницу ошибки.
Собственно это баг nginx или... ?
При чтении заголовков запроса виртуальный сервер ещё не известен,
т.к. заголовок Host не прочитан и не обработан. Соответственно
чтобы error_page 400 сработал - надо его задать в сервере по
умолчанию для данного listen-сокета.