如何使用htaccess获取所有$ _GET参数

时间:2017-02-27 09:39:48

标签: php .htaccess mod-rewrite

我有一个像htaccess:

RewriteEngine On
RewriteRule     ^admin/$                                admin/index.php                 [NC,L]    # Handle product requests
RewriteRule     ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$     index.php?p=$1&id=$2             [NC,L]    # Handle product requests
RewriteRule     ^([a-zA-Z0-9-]+)/?$                     index.php?p=$1                  [NC,L]    # Handle product requests
RewriteRule     ^$                                      index.php?p=index   

但是当我得到这样的网址时: site-mine.php/product/?soomething=anything 然后,Php仅将product视为$_GET参数。 我想得到所有$_GET参数。 有人可以帮助我吗? 感谢

2 个答案:

答案 0 :(得分:2)

要将原始查询参数传递给重写的网址,您需要QSA flag

RewriteRule     ^admin/$    admin/index.php     [NC,L,QSA]    # Handle product requests
                                                      ^^^ here
# etc.

答案 1 :(得分:1)

使用Query String Append选项

替换

index.php?p=$1 [NC,L]

index.php?p=$1 [QSA,L]

您可以将GET变量作为$_GET["p"]

进行访问
  

QSA,L之间没有空格。 [QSA,L]