/.htaccess(CakePHP解析 #2)
Mon, May 12, 2008前回は「app/webroot/index.php」から学習をスタートしましたが、じゃぁ「index.php」や「app/index.php」どうなっているのかと言いますと.htaccessによってシカトされてますね。おそらくmod_rewriteが使えない場合の対策なのでしょうが、その場合の処理まで解析していてはキリがありません。今日は最上層にある/.htaccessの解析をします。
/.htaccess(app/.htaccessもほぼ同じ内容)
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule>
~
まずは、
RewriteEngine on以下
次に中身の解説ですが、こちらの技林さんのサイトの解説が凄く分かりやすいです。この処理でapp/webroot/に飛ばしているわけですね。
正規表現は欠かせません
また、mod_rewriteを知る上で正規表現の知識は欠かせません。自分の正規表現入門お薦めサイトはこちらのサイトです。
更に正規表現を理解したい人はやはり「フクロウ本」を読むことをお奨めします。
詳説 正規表現 第3版
<div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">
posted with <a href="http://www.amazlet.com/browse/ASIN/4873113598/studiokingdom-22/ref=nosim/" title="詳説 正規表現 第3版" target="_blank">amazlet</a> at 08.09.21
</div>
</div>
<div class="amazlet-detail">
Jeffrey E.F. Friedl <br />オライリージャパン <br />売り上げランキング: 32534
</div>
<div class="amazlet-review" style="margin-top:10px; margin-bottom:10px">
<div class="amazlet-review-average" style="margin-bottom:5px">
おすすめ度の平均: <img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-5-0.gif" alt="5.0" />
</div>
<p>
<img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-5-0.gif" alt="5" /> 正規表現を確実にマスターできる<br /><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-5-0.gif" alt="5" /> DOSのコマンドのような簡単なものから</div>
<div class="amazlet-link" style="margin-top: 5px">
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113598/studiokingdom-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a>
</div></div>
<div class="amazlet-footer" style="clear: left">
</div></div>
<h3>
[L]って何?
</h3>
<p>
これまた、技林さんのサイトの解説が分かりやすいです。
</p>
<p>
<a href="http://tech.bayashi.jp/archives/entry/techweb/2007/001981.html" target="_blank">mod_rewrite サンプル集</a>
</p>
<p>
[L]を指定している所でマッチしたら、それ以降のマッチング処理をしないということですね。
</p>
<h3>
(.*) app/webroot/$1だけで良くね?
</h3>
<p>
と思って、ローカル環境で^$ app/webroot/を外して試してみましたが普通に動きました。うーん、でもやっぱ何かしらの理由があるんだろうな…。誰か分かる方いらっしゃいましたら教えてください(><) 次のエントリーでは「app/webroot/.htaccess」を解説したいと思います。
</p>