Переопределить цель ErrorDocument - PullRequest
0 голосов
/ 03 июня 2019

Я использую веб-сервер 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 - чтобы он проходил через переопределенное правило. Все еще бесполезно!

...