ドキュメントを読む感じだと、Apacheのmod_rewiteを使うといい感じです。


URLがかわいくなると書いてあります。



でもいろんな事情があると思います。


IISでのやり方を調べたらすぐみつかりました。


だからパクリ



下記のファイルを編集します。


app/config/core.php


57行目辺りのコメントアウトをはずすだけです。


/**
* To configure CakePHP *not* to use mod_rewrite and to
* use CakePHP pretty URLs, remove these .htaccess
* files:
*
* /.htaccess
* /app/.htaccess
* /app/webroot/.htaccess
*
* And uncomment the App.baseUrl below:
*/
Configure::write('App.baseUrl', env('SCRIPT_NAME'));



だけど、URLがそこまでかわいくなくなってしまうみたいです。


■1番かわいい

http://example.com/ コントローラ/アクション/引数


■でも今回のようにmod_rewriteを使わないと

http://example.com/index.php/ コントローラ/アクション/引数


になっちゃう。




<追記>

あれ、、

なんかこれじゃないと動かない。。


http://example.com/index.php?コントローラ/アクション/引数


になる。


でもこれじゃだめだ、ヘルパー使うと、?は出力されないから、リンク切れしてしまう。



これは本当はどうやって解決するんだろ、


とりあえず、こうしました。


■htmlヘルパー

cake/libs/view/helpers/html.php の link()メソッド内の315行目に下記の一行を追加


$url = substr_replace($url, '?', 0, 1);



■formヘルパー

cake/libs/view/helpers/form.php のcreate()メソッド内の247行目に下記の一行を追加


$attributes = str_replace('index.php/', 'index.php?', $attributes);


 これで?ベースのルーティングで、一応動く。。


けどぜんぜんプリティーじゃない、