在我们的项目中,我们开始使用.htaccess来美化url。一切都工作得很好,直到我发现,我们的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 login时,它们会返回一堆GET参数。我怎么能制定规则,导致这样的结果呢http://www.mydomain.com/social/facebook?param1=12&qqq=13
?
基本上保持第一部分现在的样子,但添加不恒定的GET参数作为旧风格?
需要追加查询字符串。您可以通过在RewriteRule
末尾添加[QSA]
来实现它:
RewriteRule ^social/facebook$ /index.php/?action=social&authsocial=facebook [QSA,L]
从文档:修改查询字符串
默认情况下,查询字符串不加更改地传递。但是,您可以在包含查询字符串部分的替换字符串中创建url。只需在替换字符串中使用问号,以指示应将以下文本重新注入查询字符串中。当要擦除现有查询字符串时,请仅以问号结束替换字符串。要合并新旧查询字符串,请使用[QSA]标志。