微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

htaccess – 删除编码重音字符的域后的多个斜线

我可以使用以下方法在URL中的任何位置删除多个斜杠:

RewriteCond %{REQUEST_URI} ^(.*?)(/{2,})(.*)$ RewriteRule . %1/%3 [R=301,L]

但是它不适用于域之后的多个斜杠

我努力了

RewriteCond %{HTTP_HOST} !="" RewriteCond %{THE_REQUEST} ^[AZ]+s//+(.*)sHTTP/[0-9.]+$ [OR] RewriteCond %{THE_REQUEST} ^[AZ]+s(.*/)/+sHTTP/[0-9.]+$ RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,L]

从: 删除多个后缀斜线mod_rewrite

删除重复的文件扩展名

如何在Windows中使用正则expression式匹配行尾?

如何处理每个结果 – 而不是grep(oz)命令(早于2.25)

如何在Windows中的多个连续模式插入stringc#

在grep中支持正则expression式转义序列

RewriteCond %{THE_REQUEST} ^([AZ]{3,9}) (.*)//([^ ]*) RewriteRule ^ %2/%3 [R=301,L]

从: 删除域后的斜线

从去往时都会产生预期的回缩

domain.com/////hello

domain.com/hello

但来自

domain.com/////héllo

结果被编码

domain.com/h%25c%25allo

如何防止重音字符在域之后删除多个斜杠时进行编码?

编辑:梨anubhava的答案

RewriteCond %{THE_REQUEST} s/+(.*?)/{2,}([^s]*) [NC] RewriteRule ^ %1/%2 [R=301,L,NE]

重音字符被保护和成功与不止重复的斜杠成功

domain.com////////héllo

但不是只有2

domain.com//héllo

获取价值和redirect与htaccess

使用DOS / Batch分割具有随机长度的string

Linuxfind正则expression式

在bash文件中交换2个单词的最佳方式是什么?

使用.htaccess从URL中删除'index.PHP'

这个规则应该适合你:

RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} ^[AZ]{3,}s/+(.*?)/+(/[^s]+) [NC] RewriteRule ^ %1%2 [R=302,NE]

这将做这些重定向

/////help => /help

/////héllo/////abc/////123 => /héllo/abc/123

anubhava的答案是最短的,但也可以是这个也是工作:

RewriteCond %{HTTP_HOST} !="" RewriteCond %{THE_REQUEST} ^[AZ]+s//+(.*)sHTTP/[0-9.]+$ [OR] RewriteCond %{THE_REQUEST} ^[AZ]+s(.*/)/+sHTTP/[0-9.]+$ RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,NE]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐