Mod Rewrite和Facebook $ _GET变量

时间:2013-02-07 23:30:57

标签: php .htaccess mod-rewrite

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

当有人点击“使用Facebook登录”按钮并登录/授权我的应用程序后,Facebook将重定向回到我的网站,其中包含一系列$_GET个变量。唯一的问题是我想检查是否设置了其中一个变量以检查Facebook登录的状态。

当我尝试拉$_GET var时,它'说'它不存在。问题在于我使用mod_rewrite来清理我的网址:

#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的网址必须混淆Facebook分配的变量,以及要重写的$_GET变量。

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

解决这个问题的最佳方法是什么?我知道我可以找到另一种方式来显示已确认的Facebook登录信息,但这对将来的其他情况仍将是一个问题,我敢肯定。

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试使用[L,QSA]而非[L]