在HTACCESS中使用字符%的URL重定向

时间:2013-09-13 14:02:14

标签: .htaccess url redirect character url-redirection

我需要通过htaccess重定向多个带%字符的网址。

目前的行是:

RewriteEngine On

RewriteCond% {REQUEST_FILENAME}!-F

RewriteCond% {REQUEST_FILENAME}!-D

RewriteRule ^-.*$ url [R=301,L]

RewriteRule ^%20.*$ url redirection [R=301,L]

RewriteRule ^%22.*$ url redirection [R=301,L]

RewriteRule ^images/files/myname%is-fyle.pdf.*$ url redirection [R=301,L]

From these lines, the redirects do not work are:

RewriteRule ^%20.*$ url redirection [R=301,L]

RewriteRule ^%22.*$ url redirection [R=301,L]

RewriteRule ^images/files/myname%is-fyle.pdf.*$ url redirection [R=301,L]

关于我做错的任何想法?我的知识几乎是基本的,不太明白为什么URL中的%重定向不起作用。

我研究过使用标志作为noescape [NE],但我没有设法从字符%的URL中获取重定向。

(htaccess的te行中的“url redirection”是我不能发布的论坛的新网址。)

谢谢。

9月23日:我感谢那些帮助我解决这个问题的人。但是,具有特殊字符(%和?)和大写字母的URL不会转发。

我复制并粘贴了我的htaccess文件的完整代码

此处:http://pastebin.com/yXGQiQzd

我在这篇文章How to Redirect to a url containing an anchor (#)?中看到,显然答案已经公布。但是,问题在于使用([])作为规则。例如:([a-zA-Z0-9 -_] +)

就我而言,例如,这些网址:

images / SchoolContry / wef / pdf / SomethingOfFiles / ca?da.pdf背后的原因? 图像/故事/金钱/备忘录Matric?cula 2010.doc

知道为什么带有特殊字符(%和?),空格和大写字母的网址没有重定向?

感谢。

1 个答案:

答案 0 :(得分:0)

URL编码字符在通过重写引擎发送之前会被解码。这意味着您需要使用已解码的字符来匹配而不是编码的字符。所以:

RewriteRule ^%20.*$ url redirection [R=301,L]

你想要:

RewriteRule ^\ .*$ url redirection [R=301,L]

和for:

RewriteRule ^%22.*$ url redirection [R=301,L]

你想要:

RewriteRule ^\".*$ url redirection [R=301,L]