Regex mod rewrite:重写规则马赫斜线并更改它们以获得变量

Regex mod rewrite:重写规则马赫斜线并更改它们以获得变量,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,我使用index.php作为我的输入脚本。我想对我的htaccess应用特定的重写规则,以便以更好的格式查看我的URL 现在,我已经成功地仅通过使用匹配我的控制器和操作 RewriteRule ^(.*)$ /mysite/index.php?r=$1 [L] 所以我可以使用这些URL中的任何一个 domain.com/users/user => /mysite/index.php?r=users/user domain.com/contacts/contact = /mysite/

我使用index.php作为我的输入脚本。我想对我的htaccess应用特定的重写规则,以便以更好的格式查看我的URL

现在,我已经成功地仅通过使用匹配我的控制器和操作

RewriteRule ^(.*)$ /mysite/index.php?r=$1 [L]
所以我可以使用这些URL中的任何一个

domain.com/users/user =>  /mysite/index.php?r=users/user
domain.com/contacts/contact =  /mysite/index.php?r=contacts/contact
我想在我的URL中添加一些附加的get变量,以获得特定的记录,如

domain.com/users/user/id/10

现在我只能这样做:

domain.com/users/user&id=10 = > /mysite/index.php?r=users/user&id=10

domain.com/contacts/contact&id=2&name=5 => /mysite/index.php?r=contacts/contact&id=2&name=5

如何更改重写规则以同时支持GET变量?

添加
QSA
标志:

RewriteRule ^(.*)$ /mysite/index.php?r=$1 [L,QSA]
  • QSA代表
    查询字符串Append
    ,确保在添加新查询参数时保留现有查询字符串

参考:添加
QSA
标志:

RewriteRule ^(.*)$ /mysite/index.php?r=$1 [L,QSA]
  • QSA代表
    查询字符串Append
    ,确保在添加新查询参数时保留现有查询字符串
参考: