Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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_Redirect_Url Rewriting_Url Redirection - Fatal编程技术网

.htaccess 如何通过htaccess从URL中删除特殊字符?

.htaccess 如何通过htaccess从URL中删除特殊字符?,.htaccess,redirect,url-rewriting,url-redirection,.htaccess,Redirect,Url Rewriting,Url Redirection,我有一个URLhttps://link.de/sub/directory/•(即结尾处的%E2%80%A2)应重定向到https://link.de/sub/directory/,因此我需要去掉末尾的字符 我试图通过重定向匹配来解决它: 重定向匹配301^目录。*$https://link.de/sub/directory/ 但我仍然会在最后得到•,这是一个不存在的URL,并产生一个错误 我如何从URL中删除它并重定向到没有它的URL?我真的看不出这里的问题。。。您可以简单地“忽略”前缀后面的任

我有一个URL
https://link.de/sub/directory/•
(即结尾处的
%E2%80%A2
)应重定向到
https://link.de/sub/directory/
,因此我需要去掉末尾的字符

我试图通过重定向匹配来解决它:

重定向匹配301^目录。*$https://link.de/sub/directory/

但我仍然会在最后得到
,这是一个不存在的URL,并产生一个错误


我如何从URL中删除它并重定向到没有它的URL?

我真的看不出这里的问题。。。您可以简单地“忽略”前缀后面的任何内容:

RewriteEngine on
RewriteRule ^/?sub/directory/ https://example.com/sub/folder/ [R=301,L]


还有一个一般提示:您应该始终希望将这些规则放在http服务器主机配置中,而不是使用
.htaccess
样式的文件。这些文件是出了名的容易出错,难以调试,而且它们确实降低了服务器的速度。只有在您无法控制主机配置的情况下(阅读:非常便宜的主机服务提供商),或者如果您的应用程序依赖于编写自己的重写规则(这显然是一个安全噩梦),才提供它们作为最后一个选项。

将我的评论转换为答案

您可以在站点根目录中使用此
RedirectMatch
规则。htaccess:

RedirectMatch 301 ^/(sub/directory/).+$ /$1

对不起,
directory
所有…好的,试试看:
RedirectMatch 301^/(sub/directory/)。+$/$1
@anubhava介意把这个作为答案吗?它起作用了。