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]

相关文章

可以认为OpenFeign是Feign的增强版,不同的是OpenFeign支持S...
为进一步规范小程序交易生态、提升用户购物体验、满足用户在...
云原生之使用Docker部署Dashdot服务器仪表盘
本文主要描述TensorFlow之回归模型的基本原理
1.漏洞描述Apache Druid 是一个集时间序列数据库、数据仓库和...
内部类(当作类中的一个普通成员变量,只不过此成员变量是cl...