在Ubuntu 16.04.2上使用Apache 2.4.18http://sub.site.com錯誤地重定向到http://www.sub.site.com而不是https://sub.site.com
我將blog.ryangiglio.com設置爲虛擬主機。我使用letsencrypt certbot爲服務器生成SSL證書,並將其設置爲強制將重定向從http://blog.ryangiglio.com更改爲https://blog.ryangiglio.com。當你直接去https://blog.ryangiglio.com,一切工作正常。但是,如果您改爲使用http://blog.ryangiglio.com,則會重定向到http://www.blog.ryangiglio.com,這不會也不應該存在。
此域的webroot中沒有可導致衝突的.htaccess文件。
這裏是blog.ryangiglio.com.conf配置文件
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName blog.ryangiglio.com
DocumentRoot /var/www/blog.ryangiglio.com/public_html
ErrorLog /var/www/blog.ryangiglio.com/error.log
# CustomLog /var/www/blog.ryangiglio.com/access.log combined
<Directory /var/www/blog.ryangiglio.com/public_html/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =blog.ryangiglio.com
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
而且通過certbot產生的blog.ryangiglio.com-LE-的ssl.conf文件
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName blog.ryangiglio.com
DocumentRoot /var/www/blog.ryangiglio.com/public_html
ErrorLog /var/www/blog.ryangiglio.com/error.log
# CustomLog /var/www/blog.ryangiglio.com/access.log combined
<Directory /var/www/blog.ryangiglio.com/public_html/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
SSLCertificateFile /etc/letsencrypt/live/blog.ryangiglio.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/blog.ryangiglio.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
</IfModule>
我不沒有看到任何可能導致錯誤的文件。有沒有人有什麼建議?
感謝
第一個似乎仍然重定向到www.blog.ryangiglio.com。第二個是根本不執行重定向,只是顯示文檔根目錄。 –
1)所以'服務器名稱'似乎包括'www。' 2)blog.ryangiglio.com只能使用初始請求所具有的相同URI重新編譯爲https://blog.ryangiglio.com。認爲這是你的要求... 最終你可以詳細說明你想要調用什麼,你的預期結果是什麼,你取而代之。 –
1)你能想到SERVER_NAME會包含www的原因嗎? 2)對不起,如果我不清楚 - 你給它的第二個選擇是停留在http和顯示網站,而不是發送到https –