на основе кода здесь: remove multiple trailing slashes mod_rewriteнесколько косых черт на url: как удалить?
У меня есть следующие Htaccess
Options +FollowSymLinks
DirectorySlash Off
RewriteEngine on
RewriteOptions inherit
RewriteBase/
#
# remove multiple slashes from url
#
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]
#
# Remove multiple slashes anywhere in URL
#
RewriteCond %{THE_REQUEST} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
Но я узнал G-Bot дополз этот адрес: http://www.example.com/aaa/bbb/////////bbb-ccc/bbb-ddd.htm
. (aaa, bbb, ccc, ddd, являются ключевыми словами в URL-адресе, не считаются литральными - i jut показывают шаблон URL-адреса)
Тестирование вышеуказанного URL-адреса на реальном сервере я узнал, что удаление косой черты Работа.
Любой может предложить любые советы или улучшения существующего кода? Спасибо
EDIT 1
@Sylwester при условии, что следующий код
# if match set environment variable and start over
RewriteRule ^(.*?)//+(.*)$ $1/$2 [E=REDIR:1,N]
# if done at least one. redirect with 301
RewriteCond %{ENV:REDIR} 1
RewriteRule ^/(.*) /$1 [R=301,L]
Это не работает либо. Я все еще вижу ////// внутри url.
Я установил этот набор правил в самый верх моего файла htaccess, прямо под «RewriteBase /», чтобы не повлиять на другие правила, но ... ничего.
Любое другое предложение?
Так почему ответы на этот другой вопрос не сработают для вас? – JJJ
@Juhana Я понятия не имею – andrew
Мне удалось найти ответ в указанной вами ссылке. Готов поспорить, вы тоже можете. – Sylwester