@idsergey_alexandrov

Редирект с www на без www в условиях https с одним сертификатом?

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

Вот код он редиректит с www на без www , но только редиретит нормально на главной странице на остальных редиректит на эту ссылку https://site.ru/bitrix/urlrewrite.php
Можно ли сделать так ,чтобы редирект проходил нормально без покупки 2-го сертификата?
  • Вопрос задан
  • 2937 просмотров
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
1 ваши редиректы должны быть до ЧПУ
2. Вот вам пример при котором ссылки сами будут выбирать http или https в зависимости откуда пришли.
ну и да с битриксом все работает норм.
А редирект перекидывать на зеркало с https вынесено в отдельное правило.
############################################################################
#### Выбор основного зеркала (с www или без www)                        ####
############################################################################
    # 1. Удалить www
RewriteCond %{ENV:HTTPS} on
    #Если включен https
RewriteRule .* - [E=SSL:s]
    #То создаем переменную  ssl с текстом s
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
    # Проверяем, содержит ли домен www в начале URL.
RewriteRule ^(.*)$ http%{ENV:SSL}://%1/$1 [R=301,L]
    # Перенаправляем удаляем www

    # 2. Добавить www
#RewriteCond %{ENV:HTTPS} on
    #Если включен https
#RewriteRule .* - [E=SSL:s]
    #То создаем переменную  ssl с текстом s
#RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
    # Если нет www в начале домена
#RewriteRule ^(.*)$ http%{ENV:SSL}://www.%{HTTP_HOST}/$1 [R=301,L]
    #Подставляем www и https если он включен.

Ну и сам редирект на https
############################################################################
#### Перенаправляем протокол https на http                              ####
############################################################################
#RewriteCond %{ENV:HTTPS} on
   # Проверяем наличие https в URL.
#RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
   # Перенаправляем протокол на http.

############################################################################
#### Перенаправляем протокол http на https                              ####
############################################################################
#RewriteCond %{ENV:HTTPS} !on
   # Проверяем наличие https в URL.
#RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
   # Перенаправляем протокол на http.


так же рекомендую еще пару правил полезных для битрикс
https://klondike-studio.ru/standards/standartnyy-h...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kmg4e
Сделать www без сертификата.
Если он у вас все равно редиректится то зачем там https
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы