我有这个问题。当我访问exampleSite.com/unexistingpage.php时,一切正常,并显示错误文档。但是,当我尝试浏览exampleSite.com/folder/unexistingpage.php时,会显示主页的某些损坏的变体,并且找不到错误文档(我认为该站点试图在/ folder /目录中找到它)
在我的.htaccess中我有以下
ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteRule ^(.*)\.html$ $1.php?%{QUERY_STRING} [L]
</IfModule>
那么如何解决这个问题并告诉网站只在根目录中查找错误文档?或者其他可能导致问题的原因?
PS:我在Apache 2.4上
答案 0 :(得分:1)
将我的评论翻译成答案。
看来ErrorDocument 404 /404.php
指令工作正常但很可能由于您在css/js/images
文件中使用相对路径而未找到404.php
。
要进行测试,您只需在<h1>This is 404 page</h1>
中添加/404.php
即可在所有非现有网页中显示大胆的This is 404 page
文字。
要解决此问题,您可以在<head>
页面的HTML 404.php
的{{1}}部分下方添加此项,以便从中解析每个相对网址基本URL,而不是当前页面的URL。