2011-10-19 14 views
2

これは私には少し混乱します。Apache/Zend Framework - エラーログ - ページが見つかりません

私は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のを経由して、正しいページを取得します:実際のコントローラとアクションは、誰もがに行くように、存在します。

しかし、なぜこれらのエラーがすべて発生しているのか理解できません。

数字の場合、ほとんどのリクエスト(スタイルシート、ドキュメント、イメージなどを除く)をindex.phpスクリプトにリダイレクトする.htaccessファイルと関係があります。これは私がどのように見えるかです:

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"は "デフォルト"のサイトに疲れているので、シーケンスのことかもしれません。

ありがとうございました! Regileroから Fozzy

+0

htaccessに問題がある可能性があります。あなたは2つの主要な状態をマージしようとしましたか?私はすべてのリクエストがwwwバージョンにリダイレクトされ、index.phpにリダイレクトされるということを意味しますか? –

+3

これがデフォルトのログに記録されるという事実は、問題のヒントとして有効です。関連するaccess.logを確認してください。たぶん、あなたのバーチャルホストで処理されなかったDNS名や、HTTP 1/1を使用しないウェブクライアントによって処理されたリクエスト(ホストヘッダーなし) – regilero

+0

情報の興味深いビットは、ログに参照リンクもあり、私のウェブサイトから来ている:www.example.com。 – jmbertucci

答えて

0

これはデフォルトのログに起こっている事実は、関連のaccess.logをチェックし、問題に効果的に良いヒント です。たぶん、いくつかの要求は(なしホストヘッダーを持つように)HTTP 1/1を使用していない あなたのVirtualHostまたはWebクライアントによって処理されないDNS名を を作った - 10月19日'11 regilero 22時52

で私がいましたaccess.logとerror.logを比較して問題を調査することができます。

これはしばらく前ですが、問題は、IPアドレスを使用してサーバーに直接アクセスし、仮想ホストされているドメインの1つからディレクトリ構造を使用しようとしているためです。