脱离mod_rewrite使用CakePHP
CakePHP默认的运行环境是需要Apache的mod_rewrite组件支持的,如果非要在没有mod_rewrite组件的情况下使用,可以像下面这样:
在app/config/core.php (line 42)将类似下面的这行的注释去掉,并且改为下面这样,这样CakePHP中生成的Url会附带问号,以便脱离mod_rewrite传递页面参数:
define('BASE_URL',env('SCRIPT_NAME') . '?');
把CakePHP根目录下的index.php (line 68)文件中的
$uri = setUri();
$uri = env('PHP_SELF') . env('QUERY_STRING');
这样就可以用类似http://localhost/cake/index.php?/notes 这样的地址传递访问参数了。
完整的说明以及在拥有mod_rewrite的时候使用带问号的方式来传递Url参数的方法见:https://trac.cakephp.org/ticket/812