1

从回答这个问题的地方继续,

我在我的 .htaccess 文件中使用这个规则:

# Internally forward /map/abc to /location.php?address=abc
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^map/(.*)/?$ /location.php?address=$1 [NC,L]

继续前进,在页面加载后的某个时间点,用户执行 facebook 登录,该登录重定向回此原始页面,但添加了身份验证代码:

 map/פבריגט/חולון/ישראל?code=Facebook_Auth

问题是“代码”参数未传递。

我试图在上面提到的第一条规则之前添加这条规则:

#first rule to Internally forward /map to /location.php?address=abc&code=yxz and get code
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^map/(.*)/?(.*)$ /location.php?address=$1&code=$2 [NC,L]

但是对于这个网址:

/map/פבריגט/חולון/ישראל?code=abc

$_GET 数组输出

'address' => string UTF-8 (18) "פבריגט/חולון/ישראל"
'code' => string (0) ""

我应该使用什么规则来拦截“代码”参数?欢迎任何帮助。谢谢 !

4

1 回答 1

3

您需要QSARewriteRule.

RewriteRule ^map/(.*?)/?$ /location.php?address=$1 [NC,L,QSA]
于 2013-09-04T19:32:58.087 回答