/app/webroot/.htaccess(CakePHP解析 #3)
Tue, May 20, 2008今回は「/app/webroot/.htaccess」を解析します。
ソースは下記のとおり。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule>
RewriteCond
RewriteCondはURLをRewriteする条件になります。
「%{REQUEST_FILENAME}」は「要求したファイル名(フォルダ名)が」という意味。
URL指定で、「/app/webroot/aaa」ならば「aaa」がそれに当たります。
そして「!-d」は、この例であれば「aaa」というフォルダが存在するのであればRewriteしない。「!-f」はファイルが存在するのであればRewriteしないということになります。
この処理については、phaさんが自習室で詳しくまとめられています。
RewriteRuleをいろいろ試す会:RewriteCondを使う
QSAとは?
次にRewriteRule ^(.*)$ index.php?url=$1 [QSA,L]ですが、
URL書き換え部分は(.*)が$1に書き換わります。
「/app/webroot/aaa」でアクセスしたら、「/app/webroot/index.php?url=aaa」となります。
後にくっついている[QSA,L]の「QSA」の意味ですが、とみぞーノートさんのサイトに詳しくまとめられています。
次回は「cake/bootstrap.php」を解説したいと思います。