Mod Rewrite and Facebook $_GET variables


Mod Rewrite and Facebook $_GET variables

在编写登录系统时,我在使用Facebook授权用户时遇到了一个小问题。。。

在有人点击"使用Facebook登录"按钮并登录/授权我的应用程序后,Facebook会像往常一样,使用一系列$_GET变量重定向回我的网站。唯一的问题是,我想检查是否设置了其中一个变量,以检查Facebook登录的状态。

当我尝试提取$_GET变量时,它会"说"它不存在。问题是我使用mod_rewrite来清理我的url:的外观

#RewriteRule ^([A-Za-z0-9]+)/?$ ?a=b&content=$1 [L]
#RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)/?$ ?a=b&content=$1&page=$2 [L]

这会将:
www.mysite.com?content=login&page=2转换为
www.mysite.com/login/2

所以我的www.mysite.com/content?state=[...]&code=[...]&...etc的url一定混淆了Facebook分配的变量和要重写的$_GET变量。

同样的事情也发生在同时包含内容和页面集的url上。例如:www.mysite.com/content/page?state=......

解决这个问题的最佳方法是什么?我知道我可以找到另一种方式来显示确认的Facebook登录,但我相信,在未来的其他情况下,这将继续是一个问题。

提前谢谢。

尝试使用[L,QSA]而不是仅使用[L]