yous
@yous

Mod_rewrite Как сделать редирект с http на https и site.com на www.site.com?

Как сделать редирект с http на https и site.com на www.site.com?

Вот так перевожу в https, работает.

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}


как теперь ещё перевести домен site.com на https://www.site.com/

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTP_HOST} !^www.site.com$ [NC]
RewriteRule ^(.*)$ https://www.site.com/$1 [L,R=301]


то не работает

<? 
get_headers('https://www.site.com')

Warning: get_headers(http://www.site.com): failed to open stream: Connection timed out

<? 
get_headers('https://site.com')

Warning: get_headers(http://site.com): failed to open stream: Connection timed out

но сам ридерект нормально работает, перебрасывает с http на http и на www.site.com
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
# 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 если он включен.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы