Apache / Zend框架 - 错误日志 - 找不到页面

时间:2011-10-19 17:18:07

标签: php apache zend-framework apache2

这个对我来说有点混乱。

我正在使用Zend Framework运行LAMP服务器。我花了很多时间浏览我的错误日志来尝试清除任何编程错误/错误。

我的大多数特定网站错误都已完成,但我查看了我的常规Apache错误日志:

/var/log/apache2/error.log

我看到很多,几乎不变的错误,“文件不存在”,如下所示(简化为简洁):

[date] [error] [client #:#:#:#] File does not exist: /var/www/sites/[website folder]/public/explore
[date] [error] [client #:#:#:#] File does not exist: /var/www/sites/[website folder]/public/where-to-buy
[date] [error] [client #:#:#:#] File does not exist: /var/www/sites/[website folder]/public/products

等等。这些文件夹不存在,因为所有请求都被假定为重定向到index.php文件并由Zend Framework处理。存在实际的控制器和动作,以便任何人去:

http://www.example.com/explore

http://www.example.com/where-to-buy/

将通过Zend Framework获得正确的页面。

但是我不明白为什么会出现所有这些错误?

如果认为它可能与.htaccess文件有关,该文件将大多数请求(不包括样式表,文档,图像等)重定向到index.php脚本。这就是我的样子:

RewriteEngine On
# make sure all requests go to 'www' sub-domain
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

# Zend Framework, redirect requests to index.php
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Apache是​​否首先尝试通过实际目录解析请求,然后将请求传递给index.php?哪个导致错误请求?

我也不确定为什么会将其转储到默认错误日志中,而不是错误日志或特定站点。换句话说,我有每个域的错误日志,例如“example.com_error.log”。这可能是该问题的另一个迹象。这可能是一个序列问题,因为“error.log”对“默认”网站感到厌倦。

感谢您的任何见解! Fozzy

1 个答案:

答案 0 :(得分:0)

来自Regilero:

  

事实上这将是默认日志实际上是一个很好的提示   在这个问题上,检查相关的access.log。也许有些要求   在您的虚拟主机或Web客户端未处理的DNS名称上   使用HTTP 1/1(所以没有主机头) - regilero 2011年10月19日22:52

我能够将access.log与error.log进行比较以调查我的问题。

这是一段时间以前但我认为问题是由于某些脚本通过IP地址直接进入服务器并尝试使用其中一个虚拟托管域的目录结构。