Apache-2.2
Apache HTTPS / 非 WWW 重定向
我想將我的所有網路流量重定向到 https://example.com
到目前為止,除了https:www.example.com 重定向很好
這就是我的虛擬主機配置文件的樣子
<VirtualHost _default_:80> DocumentRoot "/opt/bitnami/apache2/htdocs" RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/(.*) https://example.com/ [R,L] RewriteCond %{HTTPS_HOST} ^https://www.example.com [NC] RewriteRule ^/(.*) https://example.com/ [R,L] <Directory "/opt/bitnami/apache2/htdocs"> ........
唯一不重定向的網站是
我錯過了什麼??
正如 Thomas 提到的,您想使用
HTTP_HOST
. 此外,您的資訊是多餘的,甚至沒有用。此外,您將埠 80 重定向到 443,這意味著HTTPS
無論如何都會關閉(未設置)。要在埠 443 上重定向,您需要在 443 定義中進行重定向。# http://... to https://... <VirtualHost _default_:80> DocumentRoot "/opt/bitnami/apache2/htdocs" RewriteEngine On RewriteRule ^/(.*) https://example.com/$1 [R,L] ... </VirtualHost> # https://www.example.com -> https://example.com <VirtualHost _default_:443> DocumentRoot "/opt/bitnami/apache2/htdocs" RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] RewriteRule ^/(.*) https://example.com/$1 [R,L] ... </VirtualHost>
此外,您可能想要,
$1
這樣您在重定向時就不會失去路徑。正如 Thomas 所提到的,
\.
這是一個好主意,否則您最終可能會匹配到超出預期的數量(但對於主機來說,這不太可能……)