好的,我的RewriteRule有问题。我用这样的.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /YiiBund/app/
RewriteRule ^(.*)$ index.php?/$1 [L]
尝试打开http://127.0.0.1/YiiBund/app/de/site/index?id=5&test=6
$ _GET如下所示:
array(1) {
["/de/site/index"]=> string(0) ""
}
但是,我尝试使用其他RewriteRule:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /YiiBund/app/
RewriteRule . index.php [L]
我得到了这个:
array(2) {
["id"]=> string(1) "5"
["test"]=> string(1) "6"
}
有谁知道如何将这两个规则结合起来让我得到这样的结果:
array(1) {
["/de/site/index"]=> string(0) ""
["id"]=> string(1) "5"
["test"]=> string(1) "6"
}
修改 我发现,问题是什么?通过第一个参数。如果我要更换?与&它会工作,但我不能在我的代码中这样做。
答案 0 :(得分:1)
放[QSA,L]
而不只是[L]
参考:http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html(ctrl + f“qsa”)
答案 1 :(得分:0)
实施例
RewriteRule ^/YiiBund/app/de/site/index/id/(.*)/?$
/YiiBund/app/de/site/index.php?id=$1 [L,QSA]
RewriteRule ^/YiiBund/app/de/site/index/id/test(.*)/?$ /YiiBund/app/de/site/index/id/test=$1 [L,QSA]