【问题标题】:Custom 404 Page issue in sub folders子文件夹中的自定义 404 页面问题
【发布时间】:2011-09-17 11:34:18
【问题描述】:

我注意到,当错误的地址在根级别 www.mywebsite.com/nopage.html 上请求某些内容时,我的 404 页面可以正常工作。但是,如果我要去一个不存在的子页面,那么我的 404 将无法正确显示 www.mywebsite.com/admin/nopage.html 。这样做的唯一方法是设置 404 中所有样式表、链接和图像的绝对路径吗?

这是我的 http.conf 条目:

ServerName www.mywebsite.com
DocumentRoot /var/www/currentsite
ErrorDocument 404 /404error.php
<Directory /var/www/currentsite>
  Options -Indexes FollowSymLinks +Includes
  AllowOverride all
 Allow from all
 Order allow,deny
</Directory>

有没有办法将浏览器发送到 404 页面,将 404 向下调用到用户最终到达的位置?

【问题讨论】:

    标签: html http http-status-code-404


    【解决方案1】:

    &lt;base href="http://www.mywebsite.com"&gt; 添加到错误页面的head 标记中,以使所有相对网址解析为相对于www.mywebsite.com(而不是www.mywebsite.com/admin)。我假设你的错误页面无论如何都是动态生成的,所以如果这个错误页面需要在多个域名上工作,那么在服务器上的页面中添加正确的域名应该不难。

    【讨论】:

    • 抱歉,忘记在网址中添加http://。没有它,浏览器可能会尝试加载相对于http://www.mywebsite.com/the/url/that/was/not/found/www.mywebsite.com 的网址,而不仅仅是http://www.mywebsite.com,这可能不是您想要的。
    【解决方案2】:

    在您的 .htaccess 文件中使用完整的 URL 地址 错误页面路径

    错误文档 404 http://www.yourdomain.com/404.html

    祝你好运!

    【讨论】:

      【解决方案3】:

      只是在 Kianoush 的回答中添加一些信息。

      将重定向到一个 404 页面添加到您的所有 .htaccess 文件中:(根目录,如果每个子文件夹都有自己的 .htaccess,那么也有)

      错误文档 404 http://www.yourdomain.com/404.html

      还必须完成 404 页面中的路径:

      • 错误:href="../css/style.css"

      • 右:href="https://www.yourdomain.com/css/style.css"

      这必须为您的 404 页面中的每个文件、图像等添加。

      【讨论】:

      • 不知道回答一个已有 10 年历史的问题,该问题已经有正确和赞成的答案有多大用处。
      • 有时我会在 10、15 或 20 岁的帖子中找到答案。只是想提供帮助。
      猜你喜欢
      • 2015-03-06
      • 2013-05-06
      • 2019-01-05
      • 2011-01-02
      • 1970-01-01
      • 2012-05-11
      • 2019-10-09
      • 2023-01-11
      • 2012-06-13
      相关资源
      最近更新 更多