Ошибка перенаправления слишком много раз при использовании статического HTML и удалении косых черт - PullRequest
0 голосов
/ 16 марта 2019

Я использую следующий .htaccess код для статических HTML-страниц, перенаправляя на HTTPS и версию без www и удаляя завершающие косые черты

RewriteEngine On
RewriteBase /

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]

# Redirect to https protocol
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

# Redirect from www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.+)$  [NC]
RewriteRule ^(.*) https://%1/$1 [L,R=301]

# Redirect from URL with the trailing slash to the same URL without the slash
RedirectMatch ^(.+)/$ $1

Но когда я пытаюсь перейти на внутреннюю страницу с помощьюссылка меню без косой черты, браузер загружает страницу с косой чертой, например mydomain.com/inner, и я получаю сообщение об ошибке

mydomain.com перенаправлял вас слишком много раз.

ВАЖНО! Я получаю сообщение об ошибке только для внутренних страниц, которые имеют каталоги с одинаковыми именами.Например, если я перейду по ссылке / категории, в корневом каталоге будет category.html, а в каталоге /category - дочерние HTML-страницы

.

1 Ответ

0 голосов
/ 16 марта 2019

Хорошо, достаточно добавить .htaccess в качестве первой строки

DirectorySlash Off

И чтобы избежать .html в адресной строке, если мы перейдем по ссылке /inner/, мы также переместим перенаправлениеHTTPS перед всеми другими правилами

...