【问题标题】:How to redirect from non-secure version of site to secure version of site using .htaccess如何使用 .htaccess 从非安全版本的站点重定向到安全版本的站点
【发布时间】:2014-04-16 23:03:27
【问题描述】:

我有一个适用于 4 个网站的多网站 UCC SSL 证书。我想确保无论用户如何输入网址,他们都能访问我网站的安全版本。如果用户输入裸域名,例如“mysite.com”,我使用的 .htaccess 文件将他们重定向到https://www.mysite.com。到现在为止还挺好。如果用户键入“www.mysite.com”,.htaccess 文件会将他们定向到https://www.www.mysite.com。它增加了一个额外的“www”。到网址。我想修复它,以便用户无论是否使用 www 都被重定向到 https://www.mysite.com

这是我目前的 .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 一起使用。我希望这是有道理的。

【问题讨论】:

    标签: php apache .htaccess redirect ssl


    【解决方案1】:

    这应该可行:

    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中删除。

    【讨论】:

    • 这很完美!十分感谢你的帮助。我对 .htacces 文件还很陌生,所以它真的是救命稻草!
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多