2012-01-15 2 views
1

Я работаю над веб-сайтом, и если пользователь не прошел аутентификацию или не имеет разрешения на просмотр указанной страницы, я хочу бросить стандартную страницу 404. Я немного поглядел, но не повезло. Очевидно, я мог бы просто скопировать HTML, но я бы предпочел. Я бы предпочел использовать фактическую 404 страницу, которую nginx использует, если это возможно.Клонирование по умолчанию nginx 404 страница?

Где я могу это найти?

+0

Я не понимаю, почему вы не хотите копировать HTML. Что вы ожидаете найти, если не HTML? –

+0

@KyleJones, я просто чувствую, что это полуподобный способ сделать это. – Rob

+0

Под этим я догадываюсь, что то, о чем вы просите, это способ сделать nginx отображением страницы 404 и _send обратно HTTP 404 code_, что было непонятно мне из вашего вопроса. –

ответ

3

Запустите nginx -V и найдите путь, определяемый --prefix=/prefix/path/to/nginx.

Вы найдете файл по умолчанию 404, как 404.html под /prefix/path/to/nginx/html

лучший способ для редактирования файла по умолчанию, если вы хотите, пользовательские страницы ошибок, чтобы добавить блок, как этот ваш файл nginx.conf по HTTP раздел

error_page 400 /error_docs/400_bad_request.html; 
error_page 401 /error_docs/401_unauthorized.html; 
error_page 403 /error_docs/403_forbidden.html; 
error_page 404 /error_docs/404_not_found.html; 
error_page 405 /error_docs/405_method_not_allowed.html; 
error_page 406 /error_docs/406_not_acceptable.html; 
error_page 407 /error_docs/407_proxy_authentication_required.html; 
error_page 412 /error_docs/412_precondition_failed.html; 
error_page 415 /error_docs/415_unsupported_media_type.html; 
error_page 500 /error_docs/500_internal_server_error.html; 
error_page 501 /error_docs/501_not_implemented.html; 
error_page 502 /error_docs/502_bad_gateway.html; 
error_page 504 /error_docs/504_gateway_timeout.html; 

В основном это означает использование /error_docs/404_not_found.html при возникновении ошибки 404. Вы, очевидно, определить те, для которых вы хотите сделать конкретную пользовательскую страницу

Вы можете сохранить файл 404_not_found.html где-то на сервере, таких как /prefix/path/to/nginx/errors, а затем, в каждом разделе сервера, добавить что-то вроде

server { 

    ... 

    location /error_docs { 
     internal; 
     alias /prefix/path/to/nginx/errors; 
    } 

    ... 

} 

Всякий раз, когда вы вызываете какой-либо из ранее определенных кодов ошибок, будет предоставлена ​​предопределенная пользовательская страница.

Смежные вопросы