HTTP + HTTPS + www + не www Конфигурация Apache - PullRequest
0 голосов
/ 06 июня 2018

В моей конфигурации Apache все перенаправлено на HTTPS (что хорошо).Но и https://www.example.com, и https://example.com все еще существуют.

Вопрос: как получить только https://www.example.com, а не не-www?

Должен ли я использовать301 Redirection или другой метод?

Как изменить такую ​​конфигурацию:

<VirtualHost *:80>
  ServerName example.com
  ServerAlias *.example.com
  RewriteEngine on
  RewriteCond %{HTTPS} !on
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
  ServerName example.com
  ServerAlias *.example.com
  DocumentRoot /home/www/example
  <Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
    Require all granted
  </Directory>
  SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  Include /etc/letsencrypt/options-ssl-apache.conf
  SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
</VirtualHost>
</IfModule>

?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Ответ Relymcd решил проблему, но для этого также необходимо наличие строк сертификата (если не произойдет сбой):

<VirtualHost *:443>
    ServerName example.com
    Redirect 301 / https://www.example.com/
    SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
</VirtualHost>
0 голосов
/ 06 июня 2018

Один из способов сделать это - изменить текущий виртуальный хост ServerName www.example.com и добавить новый виртуальный хост для не-www

<VirtualHost *:443> ServerName example.com Redirect 301 / https://www.example.com/ </VirtualHost>

...