为什么header('HTTP/1.0 404 Not Found')不能工作当我在.htaccess RewriteRule ^([a-zA-Z0-9\-]+)/?$ index.php?url=$1 [L,QSA]中有这一行时
我如何使它工作,以便我可以保持RewriteRule ^([a-zA-Z0-9\-]+)/?$ index.php?url=$1 [L,QSA] -也许在这一行有一个错误?
而且,即使我删除了它,header('HTTP/1.0 404 Not Found')也只是在浏览器上显示404.php,而不是指向404.php并在该文档中显示错误消息。
下面是我的代码和文件。它们都在根中进行测试。
index.php,
header('HTTP/1.0 404 Not Found');
exit();404.php,
echo "<h1>404 Not Found</h1>";
echo "The page that you have requested could not be found.";.htaccess,
RewriteEngine on
RewriteRule ^([a-zA-Z0-9\-]+)/?$ index.php?url=$1 [L,QSA]
ErrorDocument 404 404.php有什么想法吗?
编辑:
为
ErrorDocument 404 /404.php我知道这个错误,
在此服务器上找不到请求的URL /mywebsite/xxx/xxx/。 此外,在试图使用ErrorDocument处理请求时遇到了一个404未找到的错误。
它仍然没有指向404.php
发布于 2014-11-21 07:16:48
如果您看一下ErrorDocument指令的文档,它需要绝对的URL路径,所以它以"/“或”https://"“开头,否则,它将第二个参数解释为消息。
这与以下情况相同:
ErrorDocument 404 Wildcard!如果有人收到404错误,他们会在浏览器中看到“通配符!”。
您需要将其更改为URL路径,如/404.php。
https://stackoverflow.com/questions/27054617
复制相似问题