首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htaccess mod如果站点不是通过IP地址直接访问,则将非www重写为www,并将http重写为https

问htaccess mod如果站点不是通过IP地址直接访问,则将非www重写为www,并将http重写为https
EN

Stack Overflow用户
提问于 2014-12-18 11:06:38
回答 1查看 166关注 0票数 0

我们有一个网站,目前通过ip地址和域名访问,这取决于用户。

如果用户通过域名访问网站,我们需要301重定向到正确的版本(如果访问方式不正确),例如: 301重定向到,https://www.example.com (需要同时是www和https)

因此,如果他们访问一个页面:https://example.com/page,它将301重定向到https://www.example.com/page,如果他们访问一个页面(没有https) http://wwww.example.com/page,它将301重定向到页面的https版本:https://www.example.com/page,最后,如果他们没有htts和www,它将重定向到https和www版本。

但是,如果他们通过IP地址直接访问站点/页面(例如:http://131.14.12.145/-但这在技术上可能会改变),它将不会执行上述任何重定向。

关于如何设置htaccess规则,有什么建议吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-12-18 11:44:50

试试这个。

代码语言:javascript
复制
Options +FollowSymLinks
RewriteEngine On
# (1) Redirect http to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# (2) Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# (3) Direct access through IP
# CHANGE 11.11.11.11 TO YOUR ACTUAL IP
RewriteCond %{HTTP_HOST} ^11\.11\.11\.11$
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27538615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档