为主域和所有子域设置常见的自定义错误页面

时间:2014-07-30 21:01:01

标签: apache .htaccess redirect http-status-code-404 custom-error-pages

如何为所有子域以及主www域设置一组通用的自定义错误页面,如403,404等。

我有很多子域名,因此我不想将我的错误页面的冗余副本放在子域名的根目录中。我只想为每个错误提供单个html文件,并为整个网站提供服务。

在htaccess中给出绝对路径,如

ErrorDocument 404 http://www.example.org/404.html

有效,但会导致重定向,并且网址会发生变化。网址不应该更改,错误必须显示在同一个网址上。

设置相对链接

ErrorDocument 404 /404.html

适用于主域,但不适用于子域,因为它们具有单独的根目录。

我有很多子域名,所以不要分别维护所有子域名的错误页面,将错误页面放在每个子域名的根目录下似乎不是一个好选择。

您可以建议的任何方法都可以理解。

2 个答案:

答案 0 :(得分:0)

由于子域具有单独的根,因此无法使用相对路径访问错误页面,即通过在目录中上移。

像这样的整个网站的常见错误页面的可能解决方案是使用错误页面的绝对路径,但这将执行重定向,地址栏中的URL将更改。

或者你可以做什么,使用像PHP或Django这样的后端解决方案为所有子域提供一致的错误页面。

答案 1 :(得分:0)

我发现这个问题的最佳方法是对包含整个网站错误页面的文件夹使用符号链接或符号链接。

  

在" Root-Directory"中创建一个名为error的目录。你的   父域(parent.com)

包含所有错误页面400.html,401.html,403.html等。

  

symlinks添加到名为error的目录中   "根目录"您的子域名(sub1.parent.com,   sub2.parent.com等)如跟进控制台:

$ cd /var/www/html/sub1
$ ln -s ../error
$ cd /var/www/html/sub2
$ ln -s ../error
  

然后在所有.htacess文件中包含以下行

#Custom Error Pages
ErrorDocument 400 /error/400.html
ErrorDocument 401 /error/401.html
ErrorDocument 403 /error/403.html
ErrorDocument 500 /error/500.html
ErrorDocument 404 /error/404.html

随时随地享受一致的自定义错误页面!! !! 希望这会有所帮助:D