これは私には少し混乱します。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
htaccessに問題がある可能性があります。あなたは2つの主要な状態をマージしようとしましたか?私はすべてのリクエストがwwwバージョンにリダイレクトされ、index.phpにリダイレクトされるということを意味しますか? –
これがデフォルトのログに記録されるという事実は、問題のヒントとして有効です。関連するaccess.logを確認してください。たぶん、あなたのバーチャルホストで処理されなかったDNS名や、HTTP 1/1を使用しないウェブクライアントによって処理されたリクエスト(ホストヘッダーなし) – regilero
情報の興味深いビットは、ログに参照リンクもあり、私のウェブサイトから来ている:www.example.com。 – jmbertucci