2012-04-25 69 views
0

某些上下文:我服务的域名为domain.comalternate-domain.com。我想重定向所有请求,以便他们:重定向www。在使用SSL时裸露域名

  1. 使用SSL(基本上,重定向的http - > HTTPS)
  2. 使用正规主机名domain.com(如取出www前缀)

这我有我的Apache配置的顶部:

<VirtualHost *:80> 
    Redirect permanent/https://domain.com/ 
</VirtualHost> 

<VirtualHost *:433> 
    Redirect permanent/https://domain.com/ 
    SSLEngine on 

    # SSL Certificate directives are here. 
</VirtualHost> 

再后来我有https://domain.com的配置:

<VirtualHost *:443> 
    ServerName domain.com 
    # ... 
</VirtualHost> 

可正常工作,当我访问非HTTPS网页:

然而,这是行不通的当我通过HTTPS访问域时。我的意思是重定向不会发生

例子:

(注:这是正常的,证书警告时,他们不匹配,我有证书的域中的所有详细重新导向用户的原因。)

我在做什么错?

+0

此外,我想避免'mod_rewrite'。相关,但没有帮助:http://stackoverflow.com/questions/234723/generic-htaccess-redirect-www-to-non-www – lum 2012-04-25 08:07:32

回答

2

好的,问题解决了 - 我犯了一个典型的愚蠢的错误。

在SSL默认虚拟主机中,我侦听端口433。当然应该是443

+1

请注意,您正在使用的证书需要对您使用的所有主机名(有或没有'www')有效。 – Bruno 2012-04-25 10:56:50

+1

除了用户输入“https:// www.domain.com”的机会是多少?他们可能会输入“http:// www.domain.com”,然后重定向到https – 2013-02-08 07:24:23

0

你的配置表明,当有人输入一个URL为https://groupstreamer.com/时,服务器应该将它们重新映射到https://groupstreamer.com/--并且你在这里看不到这个缺陷?

失去443虚拟主机中的重定向。如果你必须使用前端控制器(由于很多原因这是错误的),那么使用404处理程序。

+0

感谢您的答案,但这不是虚拟主机的工作方式 - Apache匹配ServerName指令并为不匹配的域使用第一个虚拟主机。 – lum 2012-04-25 08:23:06

相关问题