如何使用(mod重写供电)不错的URL读取$ _GET变量


How to read $_GET variables with (mod rewrite powered) nice URLs

各位程序员大家好,

第一次使用漂亮的 URL,但我无法完全找出为什么我无法从我的脚本中读取我的 oAuth 响应。

所以这是我的设置:

.htaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]

我有一个脚本,使用谷歌的oAuth系统登录用户。此脚本将用户发送到 google api 页面,在那里他们可以允许我的网站阅读他们的电子邮件地址,然后将用户直接发送回我的网站,其中包含大量 _GET 美元的变量。

我告诉谷歌把它发送到

http://mywebsite/login/google/response

它做到了..

问题是谷歌以正常的GET格式发送结果,如下所示:

http://mywebsite/login/google/response/?openid.ns=http%3A%2F%2Fspecs.openid.ne[..]

而且我的脚本看不懂。.

当 $_GET 变量与漂亮的 URL 混合时,有没有办法读取它们?

您需要将QSA(查询字符串追加)添加到您的标志中。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,PT,L]

然后,您的$_GET将包含正确的值。