【问题标题】:a custom 404 page for all my subdomains.我所有子域的自定义 404 页面。
【发布时间】:2014-07-06 22:27:31
【问题描述】:

我希望我的所有子域都具有相同的自定义 404 错误页面。在 htdocs 文件夹的 htaccess 文件中,我尝试了以下解决方案:

ErrorDocument 404 /www/errordocument/404.php
ErrorDocument 404 www/errordocument/404.php
ErrorDocument 404 http://www.mydomain.com/errordocument/404.php

除了最后一个之外,它们似乎都不起作用。只有这个提供了 302 重定向并更改了地址栏中的 url。这是我不想要的。我只能在所有子域中创建一个 404 文件 + htaccess 文件,而不是如果有人去一个不存在的子域他们没有得到自定义 404。

如何做到这一点?

注意:服务器有 Apache 2.0 处理程序

【问题讨论】:

    标签: .htaccess http-status-code-404


    【解决方案1】:

    您可以将/errordocument/文件夹直接放在父域的DocumentRoot,然后在父域的.htaccess中有这个指令:

    ErrorDocument 404 /errordocument/404.php
    

    之后在所有子域的DocumentRoot 文件夹下(这将是父级DocumentRoot 下的子目录)创建如下符号链接:

    cd sub1; ln -s ../errordocument; cd -
    cd sub2; ln -s ../errordocument; cd -
    

    【讨论】:

    • 7 月和 8 月我决定只回答上个月的三分之一左右的问题,以便有更多时间阅读其他人的酷答案。 :)
    • 答案看起来不错,只是我还有一些问题。 ErrorDocument 404 /errordocument/404.php 是否需要进入 .../htdocs/www/ 文件夹?这是我的主站点还是需要进入.../htdocs/ 文件夹? cd sub1; 是如何工作的。我以前从未使用或见过。我是否需要为我拥有的每个子域创建一个字符串才能使其正常工作,还是每个子域都有一个通用字符串?
    • 此 ErrorDocument 指令位于父域的文档根文件夹中。如果是 htdocs/www 则将其放在那里。在这个 cd 和 ln 命令之后是你需要在 Unix Shell 命令提示符下执行的命令。
    猜你喜欢
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    相关资源
    最近更新 更多