如何使用htaccess将www和非www重定向到特定域的htt

如何使用htaccess将www和非www重定向到特定域的htt

本文介绍了如何使用htaccess将www和非www重定向到特定域的https的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将www和非www重定向到https。我已经在stackoverflow上找到了所有地方,但找不到我正在寻找的东西。

I need to redirect www and non www to https. I have looked everywhere on stackoverflow but can't find quite what I'm looking for.

规则是:


  • example.com和www.example.com以及
    必须重定向到

  • 必须匹配域名和扩展名example.com。它不能是一张外卡,也是
    匹配abc.com或123.com或example.net或其他任何东西

  • 必须仅匹配www子域名。 不能是外卡,
    也匹配sub.example.com或thisisademo.example.com

  • example.com and www.example.com and https://example.commust redirect to https://www.example.com
  • It must match the domain and extension example.com. It cannot be a wild card which alsomatches abc.com or 123.com or example.net or anything else
  • It must match for www subdomains only. It cannot be a wild card whichalso matches sub.example.com or thisisademo.example.com

我目前有:

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

但是如果有人进入www.example.com它仍然转到http版本而不是https。

However if someone enters www.example.com it still goes to the http version instead of https.

我认为我真正需要的是RewriteCond正则表达式以完全匹配只有example.com和www.example.com

谢谢

推荐答案

您可以使用以下规则在一次重定向中将非www或www重定向到

You can use the following rule to redierct non-www or www to https://www in just one redirection

#redirect http non-www to https://www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
#redirect https non-www to www
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

在测试此规则之前清除浏览器的缓存。

Clear your browser's cache before testing this rule.

这篇关于如何使用htaccess将www和非www重定向到特定域的https的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 11:15