次のような内容の.htaccessファイルを見ました
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
私が理解しているように、書き換え条件は、要求されたURLがゼロ以外のサイズのファイル、またはシンボリックリンクまたはディレクトリを対象としている場合、何もしないことを示しています。これは、によって行われ
RewriteRule ^.*$ - [NC,L]
ます。つまり、上記の条件が当てはまる場合は、そこで処理を停止します。それ以外の場合はを呼び出し/index.php
、それはを使用して行われRewriteRule ^.*$ /index.php [NC,L]
ます。
私の疑問は、
1.チュートリアル(ディープエンドを生き残る)で私は読んでいます:
つまり、URLがファイル(サイズがゼロより大きい)、ディレクトリ、またはシンボリックリンクを参照している場合。これにより、JavaScript、css、およびその他の非PHPファイルを、他の場所に集中してシンボリックリンクによってのみ参照されている場合でも直接提供できるようになります。
すべての.phpファイルはゼロ以外のサイズであるため、apacheはphpファイルと非phpファイルの違いをどのように知ることができますか?
2.要求されたURLは引数として/index.phpに渡されますか、それとも/index.phpのみを呼び出しますか?