0

在我们的项目中,我们开始使用 .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 登录时,它们会返回一堆 GET 参数。我怎么能制定规则,这会导致这样的事情 http://www.mydomain.com/social/facebook?param1=12&qqq=13

基本上保持现在的第一部分,但不要像旧样式那样添加恒定的 GET 参数?

4

1 回答 1

1

您需要附加查询字符串。[QSA]您可以通过在末尾添加来实现它RewriteRule

RewriteRule ^social/facebook$ /index.php/?action=social&authsocial=facebook [QSA,L]

从文档

修改查询字符串

默认情况下,查询字符串会原封不动地传递。但是,您可以在包含查询字符串部分的替换字符串中创建 URL。只需在替换字符串中使用问号来指示应将以下文本重新注入到查询字符串中。当您想删除现有的查询字符串时,只用问号结束替换字符串。要组合新旧查询字符串,请使用 [QSA] 标志。

于 2013-01-08T09:10:48.907 回答