Бесконечные перенаправления в mod_rewrite при перенаправлении с http на https - PullRequest
1 голос
/ 01 апреля 2020

Файл .htaccess выглядит следующим образом и хорошо работает при перенаправлении траффика c с website.com/page или website.com/page/ на индекс. php? Site = page и from website.com/ page / subpage / to index. php? site = page & sub = subpage.

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]

RewriteRule ^([^/]+)$ index.php?site=$1 [QSA]
RewriteRule ^([^/]+)/$ index.php?site=$1 [QSA]
RewriteRule ^([^/]+)/([^/]+)/$ index.php?site=$1&sub=$2 [QSA]

Проблема возникает при попытке перенаправить трафик c с http: // на https: // с помощью

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

Я получаю сообщение о том, что на сайте слишком много перенаправлений, независимо от того, какой URL. Вы знаете, что не так?

1 Ответ

1 голос
/ 01 апреля 2020

Ваши правила должны быть такими:

RewriteEngine On

RewriteCond %{REQUEST_SCHEME} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]

RewriteRule ^([^/.]+)/?$ index.php?site=$1 [QSA,L]
RewriteRule ^([^/.]+)/([^/.]+)/?$ index.php?site=$1&sub=$2 [QSA,L]

Обязательно протестируйте в новом браузере, чтобы избежать кеширования старого браузера.

...