Apache-2.2
使用 apache 將 http 重定向到 https 的問題
我在 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
似乎工作對我來說已經足夠好了。