我最近切换到了一个新的虚拟主机并发现了一个不寻常的错误 - 除了我网站上的root之外的所有页面都返回404错误,但页面的实际html。
举个例子,我可以给这个页面:
http://www.mm-vet.cz/cenik
它返回404错误但是使用实际的页面html(所以你可以在浏览器中看到它)。
这是我的.htaccess
RewriteEngine On
RewriteBase /
RewriteRule \.(css|jpe?g|gif|png|js|ico)$ - [L]
RewriteCond %{QUERY_STRING} !^cat
RewriteRule ^(.+?)/?$ /index.php?cat=$1 [L]
当我的网页确实存在时,为什么服务器返回404错误?如何解决?
答案 0 :(得分:0)
您是否有针对一组扩展程序的具体原因?这可以通过使用更简单的规则检查所请求的文件是否存在,如果不存在,然后执行重写吗?
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^(.+?)/?$ /index.php?cat=$1 [L,QSA]
您的PHP代码在任何时候都会发送header('HTTP/1.0 404 Not Found')
吗?这被调用了吗?
我从未遇到过发送404错误的虚拟主机,但也发送了请求的内容。