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

Как настроить веб-сайт http и еще один веб-сайт https на сервере с одним IP-адресом в Apache?

Я хочу создать http-сайт:http://example1.comи https-сайт:https://example2.com используя следующую конфигурацию:

Listen 80
Listen 443
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
    ServerName example1.com
    DocumentRoot /var/www/example1.com/public_html
</VirtualHost>

<VirtualHost *:443>
    ServerName example2.com
    DocumentRoot /var/www/example2.com/public_html
    SSLCertificateFile...
    SSLCertificateKeyFile...
    SSLEngine On
</VirtualHost>

Однако, если я приеду https://example1.com, Я перенаправлен на https://example2.com. Если я приеду http://example2.com, Я перенаправлен на http://example1.com. Я хотел бы https://example1.com и http://example2.com вообще не существует. Как мне поступить? Я знаю, что могу добавить еще два виртуальных хоста, чтобы соответствовать другой версии веб-сайтов. Я также могу перенаправить одну версию на другую ради SEO. Но это неестественно. Представьте, что вы настроили только один сайт https, а apache прослушивает только порт 443, поисковые системы никогда не узнают о существовании http-версии сайта, которая имеет лучший SEO-эффект. Это именно то, что я хочу.

Я также могу перенаправить одну версию на другую

Это совершенно правильное решение. Ваш Apache теперь прослушивает оба 80 и 443, а VirtualHost сопоставление выполняется внутри соединения, а не до него. Следовательно, ваш сервер должен что-то ответить, и перенаправление HTTP на канонический адрес было бы идеальным.