我想重定向以下网址
oldsite.com/index.htm?Page?somepath%2fsomefile
到
newsite.com/productindex.htm?p=somepath%2fsomefile
我有以下规则
RewriteCond %{QUERY_STRING} ^Page=(.*)$
RewriteRule ^index.htm$ http://newsite.com?p=%1 [R=301,NC,L]
但它会重定向到
newsite.com/productindex.htm?p=somepath%252Fsomefile
>--------------------------------------^^^^^
有很多参考资料提到了长期存在的双重转义错误,该错误最近已得到修复(2.2.12 我认为)并且当我运行 2.2.9 时我认为 RewriteRule B 标志可能会有帮助,但它使情况变得更糟......
newsite.com/productindex.htm?p=somepath%25252Fsomefile
>--------------------------------------^^^^^^^
Apache 专家有什么想法吗?
答案1
它的NE(无处可逃)我需要的标志
RewriteCond %{QUERY_STRING} ^Page=(.*)$
RewriteRule ^index.htm$ http://newsite.com?p=%1 [R=301,NC,L,NE]