【发布时间】:2013-02-08 07:33:05
【问题描述】:
在编写我的登录系统时,我在使用 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 登录信息,但我敢肯定,这在未来的其他情况下仍将是一个问题。
提前致谢。
【问题讨论】:
标签: php .htaccess mod-rewrite