本文介绍了如何使用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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!