2017-08-31 7 views
0

私はこれを理解するための問題に直面していますmod_rewriteの表現。私はhtdocsディレクトリにrootという名前のディレクトリを持つlocal xampp environmentを使用しています。私はこのようなアドレスバーにlocalhost/rootを入力すると、index.phpページが開きます。これは.htaccessのコードです。私はline no 3上の問題に直面していますこの書き換え条件は正確に何ですか?

RewriteEngine on 
RewriteBase /root/ 
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC] 
RewriteRule ^.*$ index.php [NC,L] 

、私は条件が真となった場合RewriteRuleにのみ動作します知っています。しかし、この状態の目的は何か。この場合、それは何をしますか。

答えて

1

このルールの目的は、静的ファイル(.css、.js、.png、.jpg、.gif、またはrobots.txtで終わる、大文字と小文字を区別しない)でマッチさせないことです。ルールに一致するリクエスト(つまり、指定された文字列で終わらないリクエスト)はすべてindex.phpに渡されます。

たとえば、要求が/images/logo.pngの場合、末尾は.pngで終わります。つまり、かっこの間の条件を満たしているため、式全体を満たしていません。したがって、index.phpには渡されません。 しかし、/blog/hello-world/の要求は、上記の文字列で終わらないため、式全体を満たしています。したがって、それはindex.phpによって処理されます。

+0

この簡単な例で説明してください。 –

+0

私はこの説明が役に立ちそうです:) –

関連する問題