【问题标题】:set common custom error pages for main domain and all subdomains为主域和所有子域设置常见的自定义错误页面
【发布时间】:2014-09-22 16:28:42
【问题描述】:

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

我有很多子域,所以我不想将我的错误页面的冗余副本放在子域的根目录中。我只想为每个错误创建一个 html 文件并将其提供给整个网站。

在 htaccess 中给出绝对路径

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

有效,但会导致重定向和 url 更改。 url 不应更改,并且错误必须显示在同一 url 本身上。

设置相对链接

ErrorDocument 404 /404.html

适用于主域,但不适用于子域,因为它们有一个单独的根。

我有很多子域,所以不想单独维护所有子域的错误页面,并且将错误页面放在每个子域的根目录中似乎不是一个好的选择。

您可以建议的任何方法或方法都将是可观的。

【问题讨论】:

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


    【解决方案1】:

    因为子域有单独的根,它们不能使用相对路径访问错误页面,即通过在目录中向上。

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

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

    【讨论】:

    • 这是如何回答任何问题的?
    【解决方案2】:

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

    在您的“根目录”中创建一个名为 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      相关资源
      最近更新 更多