将SSL短名称重定向到FQDN

时间:2014-12-22 00:55:40

标签: apache

我为内部网络服务器购买了SSL证书,只有在我使用服务器的FQDN时它才有效。有没有办法在httpd.conf中使用重写规则来实现这个目的?我已经有两条规则,它们是:

RewriteCond %{HTTP_HOST}   !^web2\.internal\.domain\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^/(.*)         https://web2.internal.domain.com/$1 [L,R]

RewriteCond %{HTTP_HOST}   ^web2\.internal\.domain\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^/(.*)         https://web2.internal.domain.com/$1 [L,R]

我使用这些来强制http到https,一个用于短名称,一个用于FQDN。

由于

1 个答案:

答案 0 :(得分:0)

根据您的评论,我认为问题是您的两个规则都会测试SERVER_PORT = 80,以及您是否通过https访问哪些不匹配。以下是适用于您的案例的单个合并规则:

RewriteCond %{HTTP_HOST}   !^web2\.internal\.domain\.com$ [NC,OR]
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$         https://web2.internal.domain.com$1 [L,R]

这两个条件检查网站是否被其他域访问,例如只是“web2”,,如果它是在完整域上访问,而是通过端口80(而不是SSL)访问。如果任一情况属实,则将用户重定向到具有完整域的https。