在研究了很多天之后,我迷失了。我们有以下重定向:
RewriteRule ^something/something2/?$ http://test.com/blabla?key=blablabla1287963%3D [R=301,L,E=OUTLINK:1]
Header always set X-Robots-Tag "noindex" env=OUTLINK
不幸的是,%3D被模块(mod_rewrite)剥夺了。主要问题是我知道如何手动修复它,但是我有多个类似的重定向,因此需要“全局解决方案”。请注意,由于我要使用noindex,因此无法选择返回重定向301(重定向301和编码的URL /字符没有问题),谢谢!
这
%3D
得到了由模块剥离
我认为您会发现%3
剥离的不是,而是剥离的%3D
。%3
被看作是一个反向引用前述的条件-我怀疑不存在-因此得到与在空字符串替换替换。(这不会有问题,Redirect
因为%N
对于mod_alias而言,后向引用不是问题。)
您需要反斜杠转义%
以%
在替换字符串中表示文字,以便在这种情况下取消其特殊含义。
然后,您需要使用上的NE
标记,RewriteRule
以防止%
自身%25
在响应中被URL编码(如)(基本上是对URL参数值进行双重编码)。
例如:
RewriteRule ^foo$ http://test.com/blabla?key=blablabla1287961\%3D [NE,R=302,L,E=OUTLINK:1]
我有多个类似的重定向,我需要一个“全局解决方案”
就“全局解决方案”而言,没有可以在服务器上启用的魔术开关来“修复”此问题。您需要在发生此冲突的地方修改每个指令。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句