Назад | Перейти на главную страницу

Перенаправить без www на www, включая https

У меня проблемы с перенаправлением:

https://example.com к https://www.example.com.

В настоящее время у меня есть это, и он не достигает нужного мне результата, и я не уверен, почему:

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

Я в основном хочу перенаправить все на https://www.example.com

Я ценю любую помощь.

Основываясь на вашем комментарии, вы пытаетесь выполнить перенаправление, чтобы избежать предупреждения SSL о неправильном сопоставлении URL в окне браузера. Это невозможно, так как перенаправление происходит после подтверждения SSL (потому что он использует Location: заголовок ответа на запрос, который не будет отправлен до тех пор, пока не произойдет подтверждение SSL и не будет принято пользователем).

Ваш лучший подход:

  • Разделите example.com на отдельный VirtualHost и используйте mod_alias, как предложил @HampusLi
  • Приобрести еще один сертификат для example.com и примените его к этому VirtualHost

В качестве альтернативы вы можете получить сертификат SAN (Subject Alternate Name), который работает для обоих example.com и www.example.com.

Для этого вам не нужен mod_rewrite, вы можете использовать гораздо более легкий встроенный модуль mod_alias с этим простым синтаксисом под http vhost:

Redirect permanent / https://example.com/