Друзья, всем привет! Помогите разобраться с редиректом. Есть сайт в .htaccess я сделал сначала редирект с www на без www, а немного позже сайт переехал с http на https и я в RewriteRule изменил с http на https. Код (Text): #переадрисация с www.pochemuchka.su на pochemuchka.su RewriteCond %{HTTP_HOST} ^www\.pochemuchka\.su$ [NC] RewriteRule ^(.*)$ https://pochemuchka.su/$1 [R=301,L] И после всего этого я ожидал, что когда в адресной строке я наберу pochemuchka.su я попаду на сайт с https, но это не так. И сейчас я понимаю, что сделал что-то не так. Помогите настроить правильно!
Надо добавить условие, что уже не на https. Однако всё равно нужны две директивы: с http->https и с www -> без www Некоторые cms делают так: Код (Text): RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} . RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] Подробнее
Сделал. выдает ошибку. Страница недоступна Сайт pochemuchka.su выполнил переадресацию слишком много раз. Удалите файлы cookie. ERR_TOO_MANY_REDIRECTS
Бывает, когда к домену не привязан ssl. То есть, фактически отключен https Пробовали без всяких редиректов просто открыть адрес с указанием полного URL? https://example.com
Пробовал. Работает. Набираю https://pochemuchka.su и все ОК. Только я думал что если я наберу http://pochemuchka.su меня должно редиректом перенаправить на https, но этого не происходит почему-то....
Код (Text): RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
Добавил этот код и сайт стал не доступен. Добавил этот код и сайт стал недоступен. Пишет что сайт выполнил переадресацию слишком много раз.
По идее можно ограничиться одним правилом с двумя условиями через OR. --- Добавлено --- Как-то так: Код (Text): RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*) https://%1/$1 [R=301,L] Если в %1 не всегда будет подхватываться значение, можно прописать в подстановке домен явно (или, может, поменять условия местами). И условие на основе %{HTTPS} не всегда работает, я бы по порту делал.
RewriteCond %{HTTP_HOST} ^old.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.old.com [NC] RewriteRule ^(.*)$ https://new.com/$1 [L,R=301,NC] вот что правильно работает! так же редайректит со старой папки на новую папку, то есть: old.com/city/moscow на new.com/city/moscow