htaccess - удаляет несколько слэшей после домена с помощью закодированных символов
Я могу удалить несколько слешей в любом месте URL, используя:
RewriteCond %{REQUEST_URI} ^(.*?)(/{2,})(.*)$
RewriteRule . %1/%3 [R=301,L]
Но это не работает для нескольких слешей после домена
я пытался
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{THE_REQUEST} ^[A-Z]+\s//+(.*)\sHTTP/[0-9.]+$ [OR]
RewriteCond %{THE_REQUEST} ^[A-Z]+\s(.*/)/+\sHTTP/[0-9.]+$
RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,L]
из:удалить несколько завершающих слешей mod_rewriteа также
RewriteCond %{THE_REQUEST} ^([A-Z]{3,9})\ (.*)//([^\ ]*)
RewriteRule ^ %2/%3 [R=301,L]
из:Удалить косую черту после доменаоба производят ожидаемое переворачивание при переходе от
domain.com/////hello
в
domain.com/hello
но из
domain.com/////héllo
результат закодирован
domain.com/h%25c%25allo
Как предотвратить кодирование символов с акцентом при удалении нескольких слешей после домена?
РЕДАКТИРОВАТЬ: груша на ответ Анубхава
RewriteCond %{THE_REQUEST} \s/+(.*?)/{2,}([^\s]*) [NC]
RewriteRule ^ %1/%2 [R=301,L,NE]
Акцентированный символ защищен и обрезан с успехом более чем с повторными слешами
domain.com////////héllo
но не только с 2
domain.com//héllo