【发布时间】:2017-08-25 22:27:58
【问题描述】:
在 Ubuntu 16.04.2 上使用 Apache 2.4.18
我将 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 webmaster@localhost
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 webmaster@localhost
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>
我在这两个文件中都没有看到任何可能导致错误的内容。有人有什么建议吗?
谢谢
【问题讨论】:
标签: apache mod-rewrite https url-rewriting virtualhost