mod_rewrite を使用してすべての 301 リダイレクトを制御すると、ページが提供される前にこれが発生しますか? 私のページで実行される php スクリプトに多数のリダイレクト ルールもある場合、最初に .htaccess が開始されますか?
8 に答える
.htaccess が最初に起動します。Apache リクエスト サイクルを見ると、次のようになります。
PHP は応答ハンドラです。mod_rewrite は、修正フェーズで実行される .htaccess および <Directory> または <Location> ブロックの書き換えルールを除いて、URI 変換で実行されます。これは、URI の変換が終わるまで、Apache がそれがどのディレクトリにあるか (つまり、どの <Directory> または .htaccess を読み取るか) を認識しないためです。
画像に関する gabriel1836 の質問に応えて、このプレゼンテーションの 2 番目のスライドから画像を取得しましたが、元は書籍「Writing Apache Modules in Perl and C 」からのものです。
.htaccess ファイルの影響を受ける URI に対して要求が行われると、PHP コードが実行される前に、Apache がすべての書き換えルールを処理します。
はい、スクリプトが提供される前に .htaccess ファイルが解析されます。
.htaccess が最初に発生します。
htaccess は Web サーバーによって制御されます。このファイルは、PHP ファイルの前に考慮されます。
たとえば、htaccess ファイルを使用して特定のフォルダーへのアクセスを制限できます。そのため、PHP の前に担当する必要があります。
お役に立てれば。
.htaccess は、php スクリプトの実行前に Apache によって実行されます。(phpスクリプトが実行され、.htaccessが別のページへのリダイレクトを行うと想像してください...)。
これは、次のコマンドでいつでもテストできます。
wget -S --spider http://yourdomain.com
このコマンドを使用すると、リクエストに応答しているユーザーを確認できます。
他のすべての人が述べたように、.htaccess が最初です。
したがって、基本的には、で.htaccess
指定されたルールに従って、関連する PHP コードまたはファイルが多かれ少なかれ必要になります。.htaccess
.htaccess