使用SSL的托管域的Apache mod_rewrite条件

时间:2014-05-21 03:15:57

标签: .htaccess mod-rewrite ssl

我有五个托管域,其中包含多域SSL证书。我不能写一个.htaccess条件来捕获CNAME www.altdomain.com(辅助域)的http和https条件。当用户在浏览器位置栏中键入“https://altdomain.com”时,它会显示“连接不受信任”,并且URL保持不变。使用http键入相同内容会正确重定向到https://www.altdomain.com,当省略https时,“altdomain.com”也会被正确重定向。

我正在使用joomla,其配置隐藏了URL中的子目录。 doc root .htaccess文件在自定义重定向部分中包含此内容:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^altdomain\.com
RewriteRule ^(.*)$ https://www.altdomain.com$1 [R=301,L]

激活joomla SSL插件同时省略.htaccess中的自定义重定向规则也可以,但“https://”和“altdomain.com”无法在所有情况下重定向。也许我应该从CNAME中省略www,但是如果有人在URL中键入www,那么就会出现重定向问题,并且我无法在不购买新SSL证书的情况下更改CNAME。如果我怀疑没有针对此问题的.htaccess解决方案,请解释原因。

1 个答案:

答案 0 :(得分:0)

www和非www URL之间的标准重定向仅适用于主域或http连接。对于辅助域上的安全/ https连接,SSL证书上必须存在确切的CNAME匹配 - 即使域名相同,重定向到未在证书上列为CNAME的主机名也不起作用。

如果我想在多域SSL证书上将https连接从altdomain.com重定向到www.altdomain.com,反之亦然,我必须在证书中包含两个CNAMES。因此,五域SSL证书仅限于三个域。