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

365
peter

Я хочу настроить веб-сайт 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 вообще не существовало. Как я должен сделать?

0

1 ответ на вопрос

3
grawity

Вы будете должны определить еще два блока VirtualHost. Если Apache не может найти соответствующий VirtualHost для этого имени, он будет использовать первый VirtualHost, принадлежащий порту.

Конечно, вам не нужно обслуживать один и тот же сайт:

  • Вы можете открыть страницу с ошибкой, например, 404 Not Found . Это будет раздражать людей.
  • Для example2.comвы можете использовать RewriteRule для перенаправления всех посетителей HTTP на HTTPS.
  • Ибо example1.com... ну, я действительно не понимаю, почему ты не подал бы это через HTTPS?

Однако вы не можете сделать так, чтобы браузер сообщал, что домен не существует, потому что это все тот же домен, независимо от того, как к нему обращались.

Я рассмотрел вопрос об использовании еще двух блоков VirtualHost и обслуживании http / https версии веб-сайта, который мне не нужен, с 404 Not Found. Но я думаю, что это не принесет пользы SEO. Использование RewriteRule - выполнимый метод, но немного сложный. Что я хочу: при посещении https://example1.com или http://example2.com, это так же, как apache не запускается, или веб-сайт никогда не настраивается на сервере. peter 6 лет назад 0
Вы можете использовать правила перенаправления, которые проще, чем RewiteRules, или даже заставить ваше приложение справиться с этим во многих случаях. davidgo 6 лет назад 1
@peter: "apache не запущен" невозможно. Вы получаете доступ к одному и тому же IP-адресу, к одному и тому же порту - вы получите те же результаты. Имя хоста известно только _after_ Apache принимает и получает запрос! grawity 6 лет назад 0
@peter: Что касается "хорошего SEO", перенаправления - это хорошо, но отказ от использования HTTPS действительно не приносит пользы вашему сайту. grawity 6 лет назад 0
@grawity, представьте, что вы настроили на своем сервере только один веб-сайт https (один виртуальный хост, прослушивание только через порт 443), поисковые системы никогда не осознают существование http-версии веб-сайта. Я думаю, что это лучший способ ради SEO. Хотя перенаправление теоретически не вредит SEO, я чувствую, что это не очень естественно. peter 6 лет назад 0

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