用get参数重写引擎

时间:2013-12-03 07:42:50

标签: php apache .htaccess mod-rewrite

好的,我的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"
}

修改 我发现,问题是什么?通过第一个参数。如果我要更换?与&它会工作,但我不能在我的代码中这样做。

2 个答案:

答案 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]