Apache ErrorDocument абсолютный путь - PullRequest
3 голосов
/ 01 августа 2011

Я пытаюсь использовать тот же 404 ErrorDocument для домена и всех его поддоменов. У всех поддоменов есть свой собственный каталог в / var / www / path

, директива Apache ErrorDocument ожидает относительный путь(относительно текущего каталога), но я хочу, чтобы он пошел в /var/www/ErrorPages/404.html из всех каталогов / поддоменов

Есть похожий вопрос здесь , заданный в 2010 годуно решение не работает, я попробовал Alias ​​и не смог заставить его делать то, что я хочу.

Пример 1: файл http://example.com/doesnotexist.txt запрашивается

-> show /var/www/mervin/ErrorDocuments/404.html в качестве ответа

Пример 2: файл http://subdomain.example.com/otherimaginaryfile.txt запрошенный

-> показать /var/www/ErrorPages/404.html в качестве ответа

Виртуальный хост:

<VirtualHost *:80>
ServerName www.mervinkoops.net
ServerAlias mervinkoops.net *.mervinkoops.net spirecoder.com www.spirecoder.com *.spirecoder.com
DocumentRoot /var/www/mervin
ErrorDocument 404 /ErrorDocuments/404.html
Redirect 404 /favicon.ico
RewriteEngine On
RewriteCond %{HTTP_HOST} public\.mervinkoops\.net [NC]
RewriteRule ^(.*)$ /public/$1 [L]
RewriteCond %{HTTP_HOST} pma\.mervinkoops\.net [NC]
RewriteRule ^(.*)$ /PHPMyAdmin/$1 [L]
RewriteCond %{HTTP_HOST} www\.mervinkoops\.net [NC]
RewriteRule ^(.*)$ /website/$1 [L]
RewriteCond %{HTTP_HOST} mervinkoops\.net [NC]
RewriteRule ^(.*)$ /website/$1 [L]
RewriteCond %{HTTP_HOST} www\.spirecoder\.com [NC]
RewriteRule ^(.*)$ /website/$1 [L]
RewriteCond %{HTTP_HOST} spirecoder\.com [NC]
RewriteRule ^(.*)$ /website/$1 [L]
<Directory /var/www/mervin/>
allow from all
Options -Indexes
RewriteBase /
</Directory>
</VirtualHost>

Как быЯ собираюсь сделать это?

Другая информация: Apache2.2, MOD_ALIAS работает, MOD_REWRITE работает, Символические ссылки включены

1 Ответ

8 голосов
/ 01 августа 2011

Я установил тестовую конфигурацию на одном из моих блоков разработки - главное, что я заметил, что в вашем скучном случае - это объявление Справочника для ваших документов об ошибках !!

Это работает для моей настройки:

<VirtualHost *:80>

        ServerName stackexchange.nexus.local
        ServerAlias serverfault.nexus.local

        DocumentRoot /Data/vhome/stackexchange.nexus.local/httpdocs

        HostnameLookups Off
        UseCanonicalName Off
        ServerSignature On

        ErrorLog /var/log/apache2/error_log
        CustomLog /var/log/apache2/access_log combined


        Alias "/ErrorPages" "/Data/vhome/stackexchange.nexus.local/ErrorPages/"
        ErrorDocument 400 /ErrorPages/bad_request.html
        ErrorDocument 401 /ErrorPages/bad_request.html
        ErrorDocument 403 /ErrorPages/bad_request.html
        ErrorDocument 404 /ErrorPages/bad_request.html


        <Directory /Data/vhome/stackexchange.nexus.local/httpdocs/>
                AllowOverride All
                Options +ExecCGI -Includes
                Order allow,deny
                Allow from all
                RewriteBase /
        </Directory>


        <Directory /Data/vhome/stackexchange.nexus.local/ErrorPages/>
                AllowOverride All
                Options +ExecCGI -Includes
                Order allow,deny
                Allow from all
        </Directory>

        #RewriteEngine On
        #RewriteCond %{HTTP_HOST} public\.mervinkoops\.net [NC]
        #RewriteRule ^(.*)$ /public/$1 [L]
        #RewriteCond %{HTTP_HOST} pma\.mervinkoops\.net [NC]
        #RewriteRule ^(.*)$ /PHPMyAdmin/$1 [L]
        #RewriteCond %{HTTP_HOST} www\.mervinkoops\.net [NC]
        #RewriteRule ^(.*)$ /website/$1 [L]
        #RewriteCond %{HTTP_HOST} mervinkoops\.net [NC]
        #RewriteRule ^(.*)$ /website/$1 [L]
        #RewriteCond %{HTTP_HOST} www\.spirecoder\.com [NC]
        #RewriteRule ^(.*)$ /website/$1 [L]
        #RewriteCond %{HTTP_HOST} spirecoder\.com [NC]
        #RewriteRule ^(.*)$ /website/$1 [L]


</VirtualHost>

Получите ваши Alias ​​/ ErrorDocs, работающие для вашего основного домена, тогда, если все еще проблемы с псевдонимами, мы можем работать над этимУ меня такое ощущение, что как только вы добавите каталог - все станет на свои места!;)]

-sean

...