10

mod_rewrite を使用してすべての 301 リダイレクトを制御すると、ページが提供される前にこれが発生しますか? 私のページで実行される php スクリプトに多数のリダイレクト ルールもある場合、最初に .htaccess が開始されますか?

4

8 に答える 8

43

.htaccess が最初に起動します。Apache リクエスト サイクルを見ると、次のようになります。

Apache リクエスト サイクル

PHP は応答ハンドラです。mod_rewrite は、修正フェーズで実行される .htaccess および <Directory> または <Location> ブロックの書き換えルールを除いて、URI 変換で実行されます。これは、URI の変換が終わるまで、Apache がそれがどのディレクトリにあるか (つまり、どの <Directory> または .htaccess を読み取るか) を認識しないためです。

画像に関する gabriel1836 の質問に応えて、このプレゼンテーションの 2 番目のスライドから画像を取得しましたが、元は書籍「Writing Apache Modules in Perl and C 」からのものです。

于 2008-10-01T16:14:15.137 に答える
21

.htaccess ファイルの影響を受ける URI に対して要求が行われると、PHP コードが実行される前に、Apache がすべての書き換えルールを処理します。

于 2008-10-01T16:11:43.567 に答える
9

はい、スクリプトが提供される前に .htaccess ファイルが解析されます。

于 2008-10-01T16:11:01.413 に答える
4

.htaccess が最初に発生します。

于 2008-10-01T16:11:10.977 に答える
3

htaccess は Web サーバーによって制御されます。このファイルは、PHP ファイルの前に考慮されます。

たとえば、htaccess ファイルを使用して特定のフォルダーへのアクセスを制限できます。そのため、PHP の前に担当する必要があります。

お役に立てれば。

于 2008-10-01T16:12:45.513 に答える
3

.htaccess は、php スクリプトの実行前に Apache によって実行されます。(phpスクリプトが実行され、.htaccessが別のページへのリダイレクトを行うと想像してください...)。

于 2008-10-01T16:13:27.447 に答える
1

これは、次のコマンドでいつでもテストできます。

wget -S --spider http://yourdomain.com

このコマンドを使用すると、リクエストに応答しているユーザーを確認できます。

他のすべての人が述べたように、.htaccess が最初です。

于 2010-01-19T18:23:50.747 に答える
0

したがって、基本的には、で.htaccess指定されたルールに従って、関連する PHP コードまたはファイルが多かれ少なかれ必要になります。.htaccess.htaccess

于 2012-09-24T22:10:53.923 に答える