使用 www apache2 重定向到 https://

使用 www apache2 重定向到 https://

我使用 apache2 主機 .conf 檔案將所有 http:// 請求重定向到 https:// ,如下所示。

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

<VirtualHost *:443>
    ServerName www.example.com
    #more details here
</VirtualHost>

這工作正常並將所有請求重定向到 https://

現在我想將我的非 www 請求重新導向到 www(所以https://example.comhttps://www.example.com)。我嘗試在上述 443 塊之前和之後添加以下行。但沒有運氣:(

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

知道如何在沒有 .htaccess 的情況下啟用此功能。

請幫忙..

答案1

您想要將重新導向新增至現有*:443虛擬主機。像這樣的事情應該要這樣做:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

將其放在任何其他RewriteRule部分之前。

答案2

你所擁有的已經是正確的。

*:443並且您需要定義NameVirtualHost.

使用此配置來# more details here進行所有 SSL 設置,就像您已經擁有的那樣:

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName www.example.com
    # more details here
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    Redirect / https://www.example.com/
    # more details here
</VirtualHost>

您需要 SSL 憑證詳細信息每個 VirtualHost容器,即使它們是相同的。

使用額外的 IPv4 位址 - 此用例不需要消耗額外的 IP 位址。 HTTP/1.1 可以處理一個 IP 位址上的多個網域,包括使用 SSL。

相關內容