Я использую веб-сервер apache2 в среде Linux.
У нас есть файлы настроек для многих доменов.
Для простоты и управляемости мы создали общий файл conf (txt), который содержит общие правила.
Мы включаем этот общий файл во все другие доменные файлы конфигурации.
Итак, для части ErrorDocuments - мы создали общие файлы ошибок и упомянули их в общем файле.
Теперь для определенного домена, когда я хочу переопределить какой-либо ErrorDocument с помощью пользовательской страницы ошибок - он все еще показывает страницу с общей ошибкой.
Общий conf в shared-conf.txt:
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride all
#Require all granted
Allow from all
</Directory>
ErrorDocument 403 /oops403
ErrorDocument 404 /oops404
ErrorDocument 500 /oops500
RewriteEngine on
RewriteRule "/oops403" "/common/403.html"
RewriteRule "/oops404" "/common/404.html"
RewriteRule "/oops500" "/common/500.html"
специфичный для домена conf в xyz.abc.com.conf:
<VirtualHost *:80>
ServerAdmin devops@xyz.com
ServerName xyz.abc.com
Include sites/shared-conf.txt
#overriding default oopsy daisy error pages at /common/<errorCode>.html
RewriteRule "/oops403" "/common/abc/abc-oopsPage.html" [L]
RewriteRule "/oops404" "/common/abc/abc-oopsPage.html" [L]
RewriteRule "/oops500" "/common/abc/abc-oopsPage.html" [L]
например. для xyz.abc.com - при появлении HTTP 404 - я всегда получаю '404.html'
Я хочу вместо этого служить abc-oopsPage.html.
Я удалил флаг [L] из общего правила ErrorDocument - чтобы он проходил через переопределенное правило. Все еще бесполезно!