.htaccess中的RewriteRule以匹配我的GET参数需求

时间:2013-01-08 09:04:41

标签: php .htaccess

在我们的项目中,我们开始使用.htaccess来美化网址。一切都很好,直到我发现,我们的facebook登录不想工作,因为fb返回的GET参数无法在我们的代码中捕获。

RewriteRule ^social/facebook$ /index.php/?action=social&authsocial=facebook

这条规则打破了我需要的一切。 它将http://www.mydomain.com/index.php/?action=social&authsocial=facebook更改为http://www.mydomain.com/social/facebook

因此它解析了2个GET参数。但是当我使用facebook登录时,他们会返回一堆GET参数。我怎么能制定规则,这会导致这样的事情 http://www.mydomain.com/social/facebook?param1=12&qqq=13

基本保留现在的第一部分,但是在旧样式中添加不是常量的GET参数?

1 个答案:

答案 0 :(得分:1)

您需要附加查询字符串。您可以在[QSA]

的末尾添加RewriteRule来实现此目的
RewriteRule ^social/facebook$ /index.php/?action=social&authsocial=facebook [QSA,L]

From documentation

  

修改查询字符串

     

默认情况下,查询字符串不会更改。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串中使用问号,即表示应将以下文本重新注入查询字符串。如果要删除现有查询字符串,请仅使用问号结束替换字符串。要组合新旧查询字符串,请使用[QSA]标志。