htaccess:将包含URL编码字符(如& 20)的旧URL重定向到新URL

时间:2014-05-12 19:18:26

标签: .htaccess redirect url-encoding

我需要重定向一些特定的网址,例如

h_tp://www.domain.tld/folder/foo.-bar%20%3C/xyz%3E%3C/=

到另一个网址。

当然我必须逃避点等等,但我如何处理我的expresson中的空格(%20)等转义字符以匹配此特定网址?

//编辑:

这就是重定向的样子:

RewriteRule ^/?fileadmin/Brosch%C3%BCren_Neu/Document\.pdf/?$ h_tp://www.domain.tld/newLocation.pdf [R=301,NC,L]

很抱歉我的反应有所延迟,昨天一直很晚。

2 个答案:

答案 0 :(得分:0)

将标志[NE]添加到重写规则的末尾应该这样做。 NE代表No Escape。 E.g。

RewriteEngine On
RewriteRule ^name/(.*)$ /username/$1 [R,NE]

会将example.com/name/john smith重定向到example.com/username/john smith

答案 1 :(得分:0)

我现在找到了解决方案!我对我应该处理的编码链接感到困惑。

我必须首先解码编码链接,然后使用解码版本编写重写规则。现在它看起来像这样(并且正在发挥作用):

RewriteRule ^/?fileadmin/broschüren_neu/document\.pdf/?$ h_tp://www.domain.tld/newLocation.pdf [R=301,L]

我将http://更改为h_tp://以删除链接。