如何使用(mod rewrite powered)漂亮的URL读取$ _GET变量

Chr*_*ian 4 php .htaccess get

程序员大家好,

我第一次使用不错的URL,但我无法找到为什么我无法从脚本中读取oAuth响应.

所以这是我的设置:

的.htaccess

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

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

我告诉谷歌发送给它

http://mywebsite/login/google/response
Run Code Online (Sandbox Code Playgroud)

这样做..

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

http://mywebsite/login/google/response/?openid.ns=http%3A%2F%2Fspecs.openid.ne[..]
Run Code Online (Sandbox Code Playgroud)

我的脚本无法读取..

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

Roc*_*mat 8

您需要QSA在标志中添加(查询字符串追加).

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

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