Apache-2.2

使用 apache 將 http 重定向到 https 的問題

  • September 4, 2010

我在 apache 中有一個虛擬主機設置,僅適用於 SSL。它是這樣設置的:

<VirtualHost 8.8.8.8:443>
<IfModule mod_ssl.c>
       SSLCertificateFile /home/me/server.crt
       SSLCertificateKeyFile /home/me/server.pem
       SSLEngine on
       ServerName example.com
       SSLOptions StrictRequire
       SSLProtocol all -SSLv2
</IfModule>

DocumentRoot /me
ServerName example.com
<Location />
AllowOverride none
</Location>
RemoveHandler .cgi .pl .py .php4 .pcgi4 .php3 .phtml .pcgi .php5 .pcgi5
RemoveType .cgi .pl .py .php4 .pcgi4 .php3 .phtml .pcgi .php5 .pcgi5
</VirtualHost>

我想做的是擁有它,這樣當有人訪問我的網站時,他們會自動重定向到 https 版本。

在 VirtualHost 之外,我嘗試監聽埠 80,並重定向到安全版本,就像這樣

聽 8.8.8.8:80 NameVirtualHost 8.8.8.8:443

永久重定向 / https://example.com/

但是,這顯然導致了無限循環。

當 https 站點是 VirtualHost 時,重定向到站點的 https 版本的正確方法是什麼?

這就是我所做的:

指定一個埠 80 的虛擬主機,就像您將執行一個普通的非加密站點一樣。在該虛擬主機的根目錄中,只放置一個包含以下內容的 .htaccess 文件:

Redirect 301 / https://your-ssl-site.tld

似乎工作對我來說已經足夠好了。

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