【问题标题】:Website returns error 404 with content网站返回带有内容的错误 404
【发布时间】:2015-12-28 11:16:53
【问题描述】:

我最近切换到一个新的虚拟主机并发现一个不寻常的错误 - 我网站上除 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 错误,我该如何解决?

【问题讨论】:

  • 你用的是哪个php框架?
  • 对这个网站没有任何意义
  • 删除此行RewriteRule ^([a-z0-9_-]+)\.html$ index.php/page/$1 [L]
  • 没有这样一行
  • 对不起这行RewriteRule ^(.+?)/?$ /index.php?cat=$1 [L]

标签: php html .htaccess mod-rewrite http-status-code-404


【解决方案1】:

您定位一组扩展是否有特定的原因?这是否可以通过使用更简单的规则来检查请求的文件是否存在,如果不存在,则执行重写?

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^(.+?)/?$ /index.php?cat=$1 [L,QSA]

您的 PHP 代码是否在任何时候发送header('HTTP/1.0 404 Not Found')?是否被调用?

我从未遇到过 webhost 发送 404 错误,但也发送请求的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-01
    • 2013-06-14
    • 2015-01-04
    • 1970-01-01
    • 2017-06-24
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多