【发布时间】:2011-10-17 14:30:54
【问题描述】:
我正在尝试对域及其所有子域使用相同的 404 ErrorDocument, 子域在 /var/www/ 路径下都有自己的目录
Apache ErrorDocument 指令需要一个相对路径(相对于当前目录),但我希望它 从所有目录/子域转到 /var/www/ErrorPages/404.html
有一个类似的问题here 在 2010 年提出,但它没有详细说明解决方案,我尝试了 Alias,但无法让它做我想做的事。
示例 1:
文件http://example.com/doesnotexist.txt 请求
-> 显示/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 工作,启用符号链接
【问题讨论】:
标签: apache http mod-rewrite error-handling mod-alias