CakePHPでmod_rewriteが使えない場合に

mod_rewriteが使えない環境で、$_SERVERのREQUEST_URI値が取得できずエラーが出るときの対処法。

通常

http://example.com/controller/action/

mod_writeが使えない場合

http://example.com/index.php/controller/action/

app/config/core.php

<?php
// コメントアウトを外す
Configure::write('App.baseUrl', env('SCRIPT_NAME'));

mod_rewriteが使えず、REQUEST_URIの値も取得できない場合

env('QUERY_STRING')の値が取得できる環境であれば、
下記のようにリクエストパラメータを渡すことができる。

http://example.com/index.php?/controller/action/

app/config/core.php

<?php
// コメントアウトを外し、"?/"を追加
Configure::write('App.baseUrl', env('SCRIPT_NAME') . "?/");


urlパラメータにパラメータを渡すこともできる。
.htaccessがやっていたことを直接行う方法。

http://example.com/index.php?url=/controller/action/