Regex mod_重写规则异常
我正在为我的站点准备重写规则。当目标URL包含“%3A”这样的字符时,我面临一个问题。 Apache mod_rewrite在重写url时只删除“%3” 例如,我需要重写urlRegex mod_重写规则异常,regex,apache,.htaccess,mod-rewrite,url-rewriting,Regex,Apache,.htaccess,Mod Rewrite,Url Rewriting,我正在为我的站点准备重写规则。当目标URL包含“%3A”这样的字符时,我面临一个问题。 Apache mod_rewrite在重写url时只删除“%3” 例如,我需要重写url /primed-white-mdf-skirting+architrave/ 到 我已经为此生成了规则。这是: RewriteRule ^primed-white-mdf-skirting\+architrave/ /Products/Decorating+Interiors/Mouldings/Skirting/
/primed-white-mdf-skirting+architrave/
到
我已经为此生成了规则。这是:
RewriteRule ^primed-white-mdf-skirting\+architrave/ /Products/Decorating+Interiors/Mouldings/Skirting/c/1000589?q=%3AtopSellers%3AColour%3AWhite&text=# [R=301,L,NE]
因此,重写传递到:
/Products/Decorating+Interiors/Mouldings/Skirting/c/1000589?q=AtopSellersAColourAWhite&text=%23
为什么会发生这种情况?请帮助您需要转义
%
否则%3
将被视为从重写条件
捕获组的反向引用
:
RewriteRule ^primed-white-mdf-skirting\+architrave/ /Products/Decorating+Interiors/Mouldings/Skirting/c/1000589?q=\%3AtopSellers\%3AColour\%3AWhite&text=# [R=301,L,NE,QSA,NC]
您是否尝试过在指令的重写部分转义%
符号?将它们更改为\%
应该有效。转义和添加[NE]-键有效。非常感谢。
RewriteRule ^primed-white-mdf-skirting\+architrave/ /Products/Decorating+Interiors/Mouldings/Skirting/c/1000589?q=\%3AtopSellers\%3AColour\%3AWhite&text=# [R=301,L,NE,QSA,NC]