我想制作一个自定义的404页面。
我创建了一个仅包含此行的.htaccess:
ErrorDocument 404 /errors/404.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.
一个想法?谢谢!
答案 0 :(得分: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']