質問

mod_rewriteを使用してすべての301リダイレクトを制御する場合、これはページが配信される前に発生しますか?ページ上で実行されるphpスクリプトにリダイレクトルールの束がある場合、.htaccessが最初に起動しますか?

役に立ちましたか?

解決

.htaccessファイルの影響を受けるURIにリクエストが行われると、ApacheはPHPコードが実行される前に書き換えルールを処理します。

他のヒント

最初に.htaccessが起動します。 Apacheのリクエストサイクルを見ると:

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コードまたはファイルが必要です。つまり、<=>が最初に実行されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top