.htaccess - HTACCESS 中带有字符 % 的 URL 重定向

标签 .htaccess url character redirect

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

当前行是:

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 中的“url 重定向”是论坛的新 URL,我无法发布)。

谢谢。

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

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

这里:http://pastebin.com/yXGQiQzd

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

以我为例,这些 URL:

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

知道为什么带有特殊字符(% 和 ?)、空格和大写字母的 URL 不会重定向吗?

谢谢。

最佳答案

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

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

你想要:

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

以及:

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

你想要:

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

关于.htaccess - HTACCESS 中带有字符 % 的 URL 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18788308/

相关文章:

c - 编写一个程序来检查给定的输入字符串是否有平衡括号

php - 我如何检查一个字符是否在一个字符范围内?

wordpress htaccess如何删除除index.php之外的所有php扩展

apache - .htaccess 添加 HTTPS 强制到子目录的现有重写规则

url - 为什么 '%20' 在 URL 中用作空格的起源

带有while循环的php多个curl url

android - 获取字符串中的表情符号计数

reactjs - .htaccess 机器人代理

php - 在我的 Xampp 本地主机中哪里可以找到 .htaccess 文件

.htaccess - 使用尾随点将 url 重定向到主页