最新情報  

[CodeIgniter]mod_writeに伴う.htaccess設定

久々にプログラム系の事をやる機会があり、CodeIgniterというものを触ってみた。
数年前にcakePHPをやってみたものの、個人的にはあまりしっくりこなかったので、
PHPで手頃なフレームワークを探していたところ、
「低い学習コストと圧倒的な速さ」がウリとのことで少し触ってみることに。

で、初期設定を進めていく中で、
mod_writeを利用するために.htaccess設定をするのだが、
下記のようにする基本設定がマニュアルに通りにやっても何故かうまくいかない。

http://hogehoge.com/index.php/test/
→http://hogehoge.com/test/

マニュアルによると

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

とあるものの、何度やってもダメだったので、
「また、サーバ仕様の問題かなぁ」と思いながら、
RewiteEngineのことを調べてみたところ、
結構みんな適当な事を書いていてアテにならないため、
本家サイトで調べてみたところ、
[flags]の部分が結構大事であって、通常[R]とか[L]しか見かけなかったのだけど、
実はものすごく沢山あることが判明。

ということで、教訓をメモすると。

  1. 人のブログとかメモを鵜呑みにしない
  2. 当然のことのように、まずは本サイト(正式なマニュアル)を参照する

特に後者については英語がメンドクサイ(そもそも苦手)ということもあり、
ついついサボりがちになってしまうので、気をつけねば。

で、今回の解決策は、[flags]を[P]’proxy|P’ (force proxy)に変更すること。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [P]

CodeIgniterの情報があんまりなかったことと、
あまりにもここを更新していなかったこともあり、
1年以上ぶり更新してみる。

どこかの誰かの役に立てば幸い。


Tags:

Popularity: 14%