我的配置是:
Listen 443 http
NameVirtualHost *:80
NameVirtualHost *:443
ServerName *:80
<VirtualHost *:80>
[some non-ssl stuff]
ServerName account.example.com
</VirtualHost>
<VirtualHost *:443>
[some non-ssl stuff(directory, docroot)]
ServerName account.example.com
SSLEngine on
SSLCertificateFile /Users/myusername/certs/server.crt
SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>所以我无法访问我的站点的http版本,但是ssl版本工作正常。我想使用两个vhosts,http(80)和https(443)通过mod_rewrite将http重写为https URL。
uname -a
Linux 3.4.62-53.42.amzn1.x86_64 GNU/Linux
httpd -v
Server version: Apache/2.2.25 (Unix)请帮助理解我做错了什么。
发布于 2013-11-10 01:16:35
所以,我现在的配置是:
Listen 443 http
Listen 80
NameVirtualHost *:80
NameVirtualHost *:443
ServerName *:80
<VirtualHost *:443>
[some non-ssl stuff(directory, docroot)]
ServerName account.example.com
SSLEngine on
SSLCertificateFile /Users/myusername/certs/server.crt
SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>
<VirtualHost *:80>
SSLEngine off
[other stuff like docroot]
</VirtualHost>不确定SSLEngine off,但现在它可以工作了。因此,我在http vhost .htaccess文件中添加了重写规则,将http重定向为https:
#Redirrect from http to https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]https://stackoverflow.com/questions/19852817
复制相似问题