Перенаправить HTTP на HTTPS с VirtualHost - PullRequest
0 голосов
/ 08 октября 2018

У меня есть SSL-сертификат Let's Encrypt для exampledomain.com.www.exampledomain.com перенаправляет на https://exampledomain.com,, но exampledomain.com предоставляет «Apache2 Ubuntu Default Page».Я использую следующий файл .conf для домена в папке sites-available:

<VirtualHost *:80>
DocumentRoot /var/www/html/mydomain
ServerName mydomain.hu
ServerAlias www.mydomain.hu
RewriteEngine on
RewriteCond %{SERVER_NAME} =mydomain.hu [OR]
RewriteCond %{SERVER_NAME} =www.mydomain.hu
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Redirect / https://mydomain.hu/
</VirtualHost>

РЕДАКТИРОВАТЬ:

Изменен .conf файл с использованием ответов.

<VirtualHost *:80>
DocumentRoot /var/www/html/mydomainamehu
ServerName mydomainame.hu
ServerAlias www.mydomainame.hu
RewriteEngine on
RewriteCond %{SERVER_NAME} =mydomainame.hu [OR]
RewriteCond %{SERVER_NAME} =www.mydomainame.hu
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Redirect / https://mydomainame.hu/
</VirtualHost>

<VirtualHost *:80>
    ServerName mydomainame.hu
    ServerAlias www.mydomainame.hu
    RewriteEngine on
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R,L]
 </VirtualHost>

<VirtualHost *:443>
 ServerName mydomainame.hu
 Redirect 301 / https://mydomainame.hu/
</VirtualHost>

<VirtualHost *:443>
ServerName mydomainame.hu
DocumentRoot /var/www/html/mydomainamehu
</VirtualHost>

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Вы можете использовать правило перенаправления следующим образом:

<VirtualHost *:80>
    ServerName mydomain.hu
    ServerAlias www.mydomain.hu
    RewriteEngine on
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R,L]
 </VirtualHost>
0 голосов
/ 09 октября 2018

VirtualHost должен прослушивать порт 443 при использовании https.

Обычно я прослушиваю порт 80, добавляю перенаправление туда, а затем настраиваю документирование в отдельном VirtualHost:

    #this listens on port 80 and redirects to https
    <VirtualHost *:80>
    ServerName mydomain.hu
    ServerAlias www.mydomain.hu
    Redirect 301 / https://mydomain.hu
    </VirtualHost>

    #this is to avoid "duplicate" traffic on www
    <VirtualHost *:443>
     ServerName www.mydomain.hu
     Redirect 301 / https://mydomain.hu/
    </VirtualHost>

    #here is your docroot so you don't get "Apache2 Ubuntu Default Page"
    <VirtualHost *:443>
    ServerName mydomain.hu
    DocumentRoot /home/www/whatever
    </VirtualHost>

Пожалуйстаобратите внимание, что вы также должны добавить правила доступа и настройки сертификатов (если необходимо), иначе это не сработает.

...