Apache 的自定义 404 错误问题 - ErrorDocument 也是 404

发布于 2024-09-12 15:14:34 字数 758 浏览 5 评论 0原文

我正在尝试为我的网站创建自定义 404 错误。我正在 Windows 上使用 XAMPP 对此进行测试。

我的目录结构如下:

error\404page.html
index.php
.htaccess

我的 .htaccess 文件的内容是:

ErrorDocument 404 error\404page.html

这会产生以下结果:

替代文本

然而,这不起作用 - 这是否与斜杠的方式有关,或者我应该如何引用错误文档?

站点站点文档驻留在网络根目录的子文件夹中,这对我应该如何引用有什么影响吗?

当我将文件更改为时,

ErrorDocument 404 /error/404page.html

我收到以下错误消息,该消息不是我链接的 html 文件内的内容 - 但它与上面列出的内容不同:

替代文字

I am trying to create a custom 404 error for my website. I am testing this out using XAMPP on Windows.

My directory structure is as follows:

error\404page.html
index.php
.htaccess

The content of my .htaccess file is:

ErrorDocument 404 error\404page.html

This produces the following result:

alt text

However this is not working - is it something to do with the way the slashes are or how I should be referencing the error document?

site site documents reside in a in a sub folder of the web root if that makes any difference to how I should reference?

When I change the file to be

ErrorDocument 404 /error/404page.html

I receive the following error message which isn't what is inside the html file I have linked - but it is different to what is listed above:

alt text

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

风月客 2024-09-19 15:14:34

ErrorDocument 指令(如果提供)本地 URL 路径,期望该路径完全符合 文档根。在您的情况下,这意味着 ErrorDocument 的实际路径是

ErrorDocument 404 /JinPortfolio/error/404page.html

当您在第二次尝试中更正它时,您看到该页面的原因是因为 http://localhost/error/ 404page.html 不存在,因此在查找错误处理文档时出现 404 错误。

The ErrorDocument directive, when supplied a local URL path, expects the path to be fully qualified from the DocumentRoot. In your case, this means that the actual path to the ErrorDocument is

ErrorDocument 404 /JinPortfolio/error/404page.html

When you corrected it in your second try, the reason you see that page instead is because http://localhost/error/404page.html doesn't exist, hence the bit about there being a 404 error in locating the error handling document.

浊酒尽余欢 2024-09-19 15:14:34

由于性能问题,目前 Apache 中默认禁用 .htaccess 文件。启用 .htaccess 文件后,Web 服务器必须在其所在的每个子目录中的每次点击时检查该文件。

只是认为值得注意这一点很重要。如果您无论如何都想打开 .htaccess 文件,这里有一个解释它的链接:

http: //www.tildemark.com/enable-htaccess-on-apache/

.htaccess files are disabled by default in Apache these days, due to performance issues. When .htaccess files are enabled, the web server must check for it on every hit in every subdirectory from where it resides.

Just figured it was important to note. If you want to turn on .htaccess files anyway, here's a link that explains it:

http://www.tildemark.com/enable-htaccess-on-apache/

也只是曾经 2024-09-19 15:14:34

您可以将它们添加到任何虚拟主机文件中,而不是将它们添加到 .htaccess 文件中。

<VirtualHost *:80>

    DocumentRoot /var/www/mywebsite

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ErrorDocument 404 /error-pages/404.html
    ErrorDocument 500 /error-pages/500.html
    ErrorDocument 503 /error-pages/503.html
    ErrorDocument 504 /error-pages/504.html

</VirtualHost>

其中 error-pagesmywebsite 文件夹中的子文件夹,包含自定义错误页面。确保重新启动 apache 以查看更改。

$sudo /etc/init.d/apache2 reload

Instead of adding them to your .htaccess file, you can add them to any of your virtual host files.

<VirtualHost *:80>

    DocumentRoot /var/www/mywebsite

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ErrorDocument 404 /error-pages/404.html
    ErrorDocument 500 /error-pages/500.html
    ErrorDocument 503 /error-pages/503.html
    ErrorDocument 504 /error-pages/504.html

</VirtualHost>

Where error-pages is a subfolder in the mywebsite folder, containing the custom error pages. Make sure you restart your apache to view your changes.

$sudo /etc/init.d/apache2 reload
太阳哥哥 2024-09-19 15:14:34

无论您输入的默认 404 页面是什么,都必须是绝对的或相对于根文件夹的:这就是为什么有些人会错误地将其 url 视为重写引擎的 url,而重写引擎的 url 是相对于 .htaccess 所在文件夹的。

Whatever url you enter as the default 404 page must be either absolute or relative from the root folder : That's why some make the mistake of treating its url like the rewrite engines' url which is relative from the folder where .htaccess is located.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文