最初に何が起こりますか? .htaccessまたはphpコード?
-
03-07-2019 - |
質問
mod_rewriteを使用してすべての301リダイレクトを制御する場合、これはページが配信される前に発生しますか?ページ上で実行されるphpスクリプトにリダイレクトルールの束がある場合、.htaccessが最初に起動しますか?
解決
.htaccessファイルの影響を受けるURIにリクエストが行われると、ApacheはPHPコードが実行される前に書き換えルールを処理します。
他のヒント
最初に.htaccessが起動します。 Apacheのリクエストサイクルを見ると:
PHPは応答ハンドラーです。 mod_rewriteは、.htaccessおよび<!> lt; Directory <!> gt;の書き換えルールを除き、URI変換時に実行されます。または<!> lt; Location <!> gt;修正フェーズで実行されるブロック。これは、ApacheがURI変換後まで、どのディレクトリにあるか(したがって、どの<!> lt; Directory <!> gt;または.htaccessを読み取るか)を認識しないためです。
画像に関するgabriel1836の質問に応えて、このプレゼンテーションですが、元々は本からのものです: PerlおよびCでのApacheモジュールの記述これを強くお勧めします。
はい、スクリプトが提供される前に.htaccessファイルが解析されます。
.htaccessが最初に発生します。
htaccessはWebサーバーによって制御されます。このファイルは、PHPファイルの前に考慮されます。
たとえば、htaccessファイルを使用して特定のフォルダーへのアクセスを制限できます。そのため、PHPの前に担当する必要があります。
これがお役に立てば幸いです。
.htaccessは、phpスクリプトの実行前にApacheによって実行されます。 (phpスクリプトが実行され、その後.htaccessが別のページにリダイレクトする場合を想像してください...)。
次のコマンドでこれをいつでもテストできます:
wget -S --spider http://yourdomain.com
このコマンドを使用すると、リクエストに応答しているユーザーが表示されます。
他のすべての人が述べたように、.htaccessが最初です。
したがって、基本的には、.htaccess
に指定されたルールに従って、<=>には多かれ少なかれ関連するPHPコードまたはファイルが必要です。つまり、<=>が最初に実行されます。