使用来自" php - $ _GET []"和" RewriteRule" in" htaccess"为" d.com"和" d.com/p/1"

时间:2017-11-16 11:39:40

标签: php .htaccess mod-rewrite

模式1:
网址: domain.com/?sv=g
.htaccess: RewriteRule ^page/([0-9]+)/$ fa/?page=$1
当我使用$_GET['sv']返回给我g时。

模式2:
网址: domain.com/page/1/?sv=g
.htaccess: RewriteRule ^page/([0-9]+)/$ fa/?page=$1
当我使用$_GET['sv']返回给我null时。

2 个答案:

答案 0 :(得分:3)

您需要将QSA标志添加到RewriteRule中,否则它将不会添加来自请求的任何现有查询字符串参数:

  

当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有的查询字符串,并将其替换为新生成的查询字符串。使用[QSA]标志会导致查询字符串合并。

试试这个:

RewriteRule ^page/([0-9]+)/$ fa/?page=$1 [QSA]

答案 1 :(得分:1)

.htaccess:

RewriteEngine On
RewriteRule ^page/([0-9]+)/$ fa/?page=$1 [QSA]
RewriteRule ^page/([0-9]+)$ fa/?page=$1 [QSA]


阅读本文:https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa