Собственные страницы ошибок Apache для всех виртуальных хостов

Существует три типа настроек для конфигурируемых сообщений об ошибках:

  1. Простой текст.
  2. Местные ссылки.
  3. Внешние пересылки.

Некоторые примеры:


ErrorDocument 500 "The server made a boo boo."
ErrorDocument 404 /missing.html
ErrorDocument 404 "/cgi-bin/missing_handler.pl"
ErrorDocument 402 http://www.example.com/subscription_info.html

Собрав все это воедино, мы можем мультилингвизировать сообщения об ошибках.

Мы используем Alias чтобы перенаправлять сообщения «/error/HTTP_.html.var» на наборы сообщений на разных языках (собранных по типу ошибки).
Мы используем «includes» для вставления необходимого текста.

Вы можете изменить вид страниц с сообщениями об ошибках, не меняя никаких стандартных файлов «HTTP_.html.var», просто добавив строку:

Alias /error/include/ "/your/include/path/"

Это позволяет Вам создать свой набор файлов, в том числе и для отдельных виртуальных хостов (VirtualHost).

В результате у нас получается что то вроде:


<IfModule mod_negotiation.c>
	<IfModule mod_include.c>
		Alias /error/ "/var/error/"
		<Directory "/var/error/">
			AllowOverride None
			Options IncludesNoExec
			AddOutputFilter Includes html
			AddHandler type-map var
			Order allow, deny
			Allow from all
			LanguagePriority en es de fr
			ForceLanguagePriority Prefer Fallback
		</Directory>
		ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
		ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
		ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
		ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
		ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
		ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
		ErrorDocument 410 /error/HTTP_GONE.html.var
		ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
		ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
		ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
		ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
		ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
		ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
		ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
		ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
		ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
		ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
	</IfModule>
</IfModule>

Изменять страници ошибок можно в конфигурационном файле httpd.conf (apache2.conf), файлах .htaccess (если это разрешенно) что даёт возможность гибкой настройки для разных папок а также в файлах виртуальных хостов!

Ваш отзыв