首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建同时使用http和https的虚拟主机?

问如何创建同时使用http和https的虚拟主机?
EN

Stack Overflow用户
提问于 2013-11-08 14:23:18
回答 1查看 29.4K关注 0票数 13

我的配置是:

代码语言:javascript
复制
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。

代码语言:javascript
复制
uname -a
Linux 3.4.62-53.42.amzn1.x86_64 GNU/Linux

httpd -v
Server version: Apache/2.2.25 (Unix)

请帮助理解我做错了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-10 01:16:35

所以,我现在的配置是:

代码语言:javascript
复制
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:

代码语言:javascript
复制
#Redirrect from http to https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19852817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档