Ssl
在apache中通過SSL將非www重定向到www不起作用
我的虛擬主機文件:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com #Redirect non-https or non-www to https://www... RewriteEngine On #NOT TESTING HTTPS REDIRECTION FOR NOW #RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,NE,R=301] </VirtualHost>
SSl 的 conf 文件是 Letsencrypt 的預設文件。
到目前為止我的測試,前 3 個結果是預期的,最後一個不是
decimoseptimo@ubuntu-512mb-sfo2-1:~$ curl -I http://example.com HTTP/1.1 301 Moved Permanently Location: https://www.example.com/
301 👍
decimoseptimo@ubuntu-512mb-sfo2-1:~$ curl -I http://www.example.com HTTP/1.1 200 OK
好的👍
decimoseptimo@ubuntu-512mb-sfo2-1:~$ curl -I https://www.example.com HTTP/1.1 200 OK
好的👍
decimoseptimo@ubuntu-512mb-sfo2-1:~$ curl -I https://example.com HTTP/1.1 200 OK
好的👎
似乎 www 重定向沒有通過 SSL 發生!不知道為什麼,自上次配置編輯以來,apache 已重新啟動。
有什麼想法嗎?
最後兩個測試將匹配 443 VirtualHost。您沒有將其包含在問題中,但我們可以假設 443 VirtualHost 中沒有匹配的 RewriteCond/Rule 對。