Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess HTACCESS中字符为%的URL重定向_.htaccess_Url_Redirect_Character_Url Redirection - Fatal编程技术网

.htaccess HTACCESS中字符为%的URL重定向

.htaccess HTACCESS中字符为%的URL重定向,.htaccess,url,redirect,character,url-redirection,.htaccess,Url,Redirect,Character,Url Redirection,我需要通过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

我需要通过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的te行中的url重定向”是我无法发布的论坛的新url)

多谢各位

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

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

在这里:

我在这篇帖子里看到答案显然已经贴出来了。然而,问题在于使用([])作为规则。示例是:([a-zA-Z0-9-!]+)

例如,在我的例子中,这些URL:

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

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


谢谢。

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

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

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

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

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

%
如何显示在您的URL中?共享虚拟源和虚拟重写URL。但是,由于无法继续重定向URL,例如:example/example/example\%example.pdf,我尝试了这种方法,但没有获得结果:RewriteRule^example/example/example/example\%example.pdf.*$URL重定向[R=301,L]使用首字母大写有什么关系吗?谢谢你的帮助Jon Lin,帮了我很多!但是,如果无法继续重定向url,例如:example/example/example/example\%example.pdf,我尝试了这种方法,但没有获得结果:RewriteRule^example/example/example/example\%example.pdf.*$url重定向[R=301,L]你认为这是为什么?(对不起,我的英语不好)使用首字母大写有什么关系吗?@JoshuaProvoste除了方括号中的空格外,其他一切看起来都很好。是的,空格的细节是什么。然而,这不是前进。我将编辑这篇文章,为htaccess添加完整的代码。