我正在尝试路由像
这样的旧网址 ...file.php?a=login
到CakePHP请求,如
/somecontrollerA/login/
但似乎路由仅支持不带参数的网址,mod_rewrite
不起作用,因为CakePHP使用$_SERVER['REQUEST_URI']
而不是$_SERVER['REDIRECT_URL']
。
是否有可能做到这样的事情?
答案 0 :(得分:1)
我终于找到了一个解决方案,并不是很好,但为此目的而努力。
打开/webroot/index.php
将以下代码放在文件的开头(感谢AD7six)
if (isset($_SERVER['REDIRECT_URL'])) {
$_SERVER['REQUEST_URI'] = preg_replace("/^(.*?)\/webroot/", "$1", $_SERVER['REDIRECT_URL']);
}
然后.htaccess文件在/ webroot /(第3和第4行)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^a=login$ [NC]
RewriteRule ^(.*)myfile\.php$ controllerA/login [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
现在,cake识别myproject / myfile.php?a =登录为/ controllerA / login