我们将我们的网站迁移到 VPS 服务器(CentOS 5.6 + Plesk 9.5)上,一切运行良好,但我在 Plesk 中注意到一个奇怪的事情,那就是 error_log 文件,大多数时候它都充满了数百个条目,例如:
...
[Thu Aug 10 11:35:48 2011] [error] [client xx.xx.xx.xx] File does not exist: /var/www/vhosts/yourdomain.com/httpdocs/category1
[Thu Aug 10 11:35:48 2011] [error] [client xx.xx.xx.xx] File does not exist: /var/www/vhosts/yourdomain.com/httpdocs/category2
....
如果我在 Web 浏览器中打开这些 URL,(ex. http://yourdomain.com/category2)
一切都会正常,没有 404 错误,标头响应 200,所以一切都会正常,我可以看到我想要的页面。但为什么日志文件将其视为错误并指出文件不存在?另外我想说的是,“category1”、“category2”不是物理目录,而是 .htacess 和 mod_rewrite 管理的路径,所以不是真正的文件夹。
mod_rewrite 似乎没有正确地告诉日志系统,当请求看起来像一个物理上不存在但由 mod_rewrite 处理的文件/文件夹时,该请求不应被视为 404。
任何帮助我都感激不尽。谢谢。
蒂姆
答案1
如果像你说的那样,这些是 .htaccess 规则,请确保 Apachs 确实读取了 .htaccess - 例如,可以通过在 .htaccess 中添加一行来完成
全部否认
然后尝试访问该网站..如果您仍然可以连接,则意味着 apache 根本没有读取 .htaccess。
为了使其可读,请转到 /etc/httpd/conf/httpd.conf 并更改相应目录的 AllowOverride 和 Options 以允许解析 .htaccess 文件,一切都应该像刀切黄油一样顺利 ;)