0

我想制作一个自定义的 404 页面。

我创建了一个 .htaccess 只包含这一行:

ErrorDocument 404 /errors/404.html

我的网站结构是这样的:

  • 错误
    • 404.html
  • 索引.php
  • .htaccess
  • 包括
    • header.html

我总是在 404 页面上得到这个错误:

Not Found

The requested URL /blabla/bg was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

一个想法 ?谢谢 !

4

1 回答 1

1

我的猜测是您的文档根目录不等于您.htaccess的位置。不幸的是,ErrorDocument与您所在的位置无关.htaccess,而是基于您的文档根目录的路径(例如/var/www/

我过去用来获取“相对”404错误页面的一种(一种hacky)解决方案是执行以下操作:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.* 404.php [L]

执行此操作的另一种(也是更正确的方法)是从服务器上的真实文档根目录指定整个路径。

要获得此完整路径,您需要在浏览器中打开 404 页面(并在您的情况下将其设为 php 页面,以便您可以获取此变量:$_SERVER['SCRIPT_NAME'] 或者如果您碰巧对目录结构的设置有更多了解. 你可以基于它$_SERVER['DOCUMENT_ROOT']

于 2013-03-31T14:07:01.620 回答