Apache 使用SSL时将www.重定向到裸域
Some context:我正在为域Apache 使用SSL时将www.重定向到裸域,apache,ssl,mod-ssl,Apache,Ssl,Mod Ssl,Some context:我正在为域domain.com和alternate domain.com下的网站提供服务。我想重定向所有请求,以便它们: 使用SSL(基本上是重定向http->https) 使用规范主机名domain.com(例如,删除www前缀) 这就是我在apache配置顶部的配置: <VirtualHost *:80> Redirect permanent / https://domain.com/ </VirtualHost> <Virtua
domain.com
和alternate domain.com
下的网站提供服务。我想重定向所有请求,以便它们:
domain.com
(例如,删除www
前缀)<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/
重定向永久/https://domain.com/
斯伦金安
#这里有SSL证书指令。
然后,我有了以下配置:
ServerName域名.com
# ...
当我访问非HTTPS页面时,这将按预期工作:
- 重定向到
https://domain.com
- 重定向到
https://domain.com
我做错了什么?您的配置显示,当有人输入的URL时,服务器应将其重新发送到-而您在此处看不到该漏洞
在443虚拟主机中丢失重定向。如果您必须使用前端控制器(这是错误的原因很多),那么请使用404处理器。好的,问题解决了-我犯了一个典型的愚蠢错误
在SSL默认vhost中,我监听端口
433
。当然应该是443
。另外,我想避免mod\u重写
。相关但没有帮助:感谢您的回答,但virtualhosts不是这样工作的-Apache匹配ServerName指令,并对不匹配的域使用第一个virtualhost。请注意,您使用的证书必须对您使用的所有主机名有效(有和没有www
)。除了用户输入https://www.domain.com
?他们可能会输入http://www.domain.com
然后将重定向到https
<VirtualHost *:443>
ServerName domain.com
# ...
</VirtualHost>