Перенаправление https://example чтобы https://www.example.com Хост

#linux #apache #redirect

Вопрос:

Я пытаюсь реализовать редирект, который выводит мой сайт из https://example.com чтобы https://www.example.com через перенаправление, а не из файла .htaccess. Наш сайт уже перенаправляет http-запросы на https://www.example.com. Я опубликовал то, что у нас есть ниже.

 <Virtualhost *:80>
ServerName www.example.com
DocumentRoot /var/www/html
RewriteEngine on
RewriteRule ^/?(.*) https://www.example.com/$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
ServerName www.example.com:443
DocumentRoot /var/www/html
SSL information here
 

Комментарии:

1. Добро пожаловать в StackOverflow! Как далеко ты продвинулся? (Что произойдет, если вы попробуете это сейчас?) Вы настроили свой DNS так, чтобы голый домен ( example.com ) указывал на ваш веб-сервер, или это выходит за рамки того, о чем вы здесь спрашиваете?

2. Привет, Джефф. Спасибо за ответ. — да, оба example.com и www.example.com укажите на веб — сервер. Все работает с http > https и > www .. Единственная проблема заключается в том, чтобы получить example.com для работы с example.com . Надеюсь, это даст вам больше разъяснений.

3. Вы ознакомились с документацией по каноническим именам хостов ?

4. «Единственная проблема заключается в том, чтобы начать https://example.com работать https://www.example.com » — Из кода, который вы включили в свой вопрос, предположительно http://example.com , также будет проблемой в настоящее время?

5. Нет, в настоящее время это работает, так как все http-запросы перенаправляются на https. Единственная проблема заключается в example.com не перенаправлять.

Ответ №1:

Настройте только виртуальные хосты HTTPS/443:

 <VirtualHost *:443>
ServerName www.example.com:443
DocumentRoot /var/www/html
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
SSL information here