PHP从使用htaccess修改的url获取变量

时间:2015-11-30 04:43:38

标签: php .htaccess mod-rewrite

我有这个网址:

example.com/en/hk/myAccount?Ref=CC0000008

我的.htaccess看起来像这样:

Options +SymLinksIfOwnerMatch
RewriteEngine On    # Turn on the rewriting engine

RewriteRule    ^(chin|en)/(hk|kw)/myAccount/?$    user_account.php?lang=$1&loc=$2& [NC,L] #SHOW USER ACCOUNT

所以我想现在获得变量ref通过在URL上,但是当我print_r的variabel $_GET我只得到变量在.htaccess文件。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您需要添加QSA标志

Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteRule ^(chin|en)/(hk|kw)/myAccount/?$ user_account.php?lang=$1&loc=$2 [QSA,NC,L]

输出:

Array ( [lang] => en [loc] => hk [Ref] => CC0000008 )

标记QSA表示如果查询字符串与原始网址一起传递,则附加它。

标记L表示规则是否匹配,请不要再处理此规则以下的规则。

标志NC表示不区分大小写,也就是说,它不关心字母在匹配的URI中是大写还是小写。

Apache RewriteRule Flags