我有4个网站的多个网站UCC SSL证书。无论他们如何输入网址,我都希望确保用户能够访问我网站的安全版本。如果用户键入裸域名,例如“mysite.com”,我使用的.htaccess文件将将其重定向到https://www.mysite.com。到现在为止还挺好。如果用户键入“www.mysite.com”,.htaccess文件会将其定向到https://www.www.mysite.com。它增加了一个额外的“www。”到URL。我想修复它,以便用户被重定向到https://www.mysite.com他们是否使用www。
到目前为止,这是我的.htaccess文件:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# secure htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>
# Cache files of specific types for 2 weeks
<filesMatch "\.(jpg|jpeg|png|gif|htm|html|css|js)$">
Header set Cache-Control "max-age=1209600, public"
</filesMatch>
我所拥有的UCC SSL证书只有在www存在的情况下才能保护网站(例如www.mysite.com)。如果没有www(例如mysite.com),它将无法保护裸域名。任何帮助将不胜感激。谢谢。
我需要指定别的东西。 UCC SSL证书是在主站点上发布的,例如www.example.com。它也适用于example.com。其他三个SAN名称仅用于前面的www。我希望这是有道理的。
答案 0 :(得分:2)
这应该有效:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
唯一的区别是www.
已从第二个RewriteRrule
中移除。