Regex htaccessmatch&;签名
我希望在.htaccess中有一条规则,将/test/ABC&D转发到/test.php?s=ABC&D 我尝试了以下规则。结果将转发到/test.php?s=ABC&url中缺少“D”Regex htaccessmatch&;签名,regex,.htaccess,Regex,.htaccess,我希望在.htaccess中有一条规则,将/test/ABC&D转发到/test.php?s=ABC&D 我尝试了以下规则。结果将转发到/test.php?s=ABC&url中缺少“D” RewriteRule ^test/([^.]+)$ /test.php?s=$1 [PT] 您有这种行为是因为它认为&是查询字符串中的分隔符。 因此,第一个数据s包含ABC,第二个数据D为空 要在url中传递&,必须对其进行编码:%26 这就是B标志存在的原因。您可以尝试以下规则: RewriteRule
RewriteRule ^test/([^.]+)$ /test.php?s=$1 [PT]
您有这种行为是因为它认为
&
是查询字符串中的分隔符。因此,第一个数据
s
包含ABC
,第二个数据D
为空
要在url中传递&
,必须对其进行编码:%26
这就是
B
标志存在的原因。您可以尝试以下规则:
RewriteRule ^test/([^.]+)$ /test.php?s=$1 [PT,B]
有关
B
flag的更多信息您是否可以控制该URL的原始来源/test/ABC&D
?应在其源位置更改,因为除非对&
进行编码,否则它不是有效的URLABC%26D
是的,我试图将URL更改为ABC%26D
。我尝试使用echo$\u GET['s']在test.php中输出参数代码>输出仍然是ABC
,没有&D