Apache-2.2

如何強制/重定向http到https?

  • May 4, 2019

我已經配置了 VirtualHost:

<VirtualHost *:80>
   ServerAdmin     mymail@mymail.com
   DocumentRoot    /var/www/mysite.com/public_html/
   ServerName      www.mysite.com
   ServerAlias     mysite.com

   <Directory "/var/www/mysite.com/public_html">
       #Options FollowSymLinks
       #AllowOverride All
       #Order allow,deny
       #Allow from all
     Options Indexes FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
     Require all granted
   </Directory>

我想要:

  1. 強制執行僅 https 連接
  2. 並在使用者使用沒有 www 的 mysite.com 時允許連接

怎麼做?

謝謝

首先,您應該為 HTTPS 定義 443 埠虛擬主機。

其次,添加從埠 80 到 443 的重寫規則。

樣本片段:

<VirtualHost __default_:443>
   ServerAdmin     mymail@mymail.com
   DocumentRoot    /var/www/mysite.com/public_html/
   ServerName      www.example.com
   ServerAlias     example.com
   SSLEngine       On
   ...
</VirtualHost>

<VirtualHost *:80> 
   ServerName www.yourdomain.com 
   Redirect permanent / https://www.example.com/ 
</VirtualHost>

引用自:https://serverfault.com/questions/965795