首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mod_rewrite www to no-www和http to https

mod_rewrite www to no-www和http to https
EN

Stack Overflow用户
提问于 2014-07-06 13:42:26
回答 3查看 102关注 0票数 1

我目前有mod_rewrite和我发现的代码,将所有请求重定向到没有www的同一个URL。

我现在要做的就是配置Apache mod_rewrite来做以下事情,而不会有任何浪费的动作/额外的重定向。

代码语言:javascript
复制
http:// to https://

http://www. to https://

我不熟悉它,但在伪代码中,http(s)://(www.)domain.comhttps://domain.com仅用于顶层的URL,不包括子域。

EN

回答 3

Stack Overflow用户

发布于 2014-07-06 13:47:51

对于这两个条件,您只需要一条规则:

将以下代码放入DOCUMENT_ROOT/.htaccess文件中:

代码语言:javascript
复制
RewriteEngine On

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://domain.com%{REQUEST_URI} [NE,R=301,L]
票数 2
EN

Stack Overflow用户

发布于 2014-07-06 13:48:10

是的,有一种方法可以将这些操作组合到一个规则中:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} !=example.com [OR]
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://example.com/$1
票数 2
EN

Stack Overflow用户

发布于 2015-07-22 16:13:14

这个对我很有效。我尝试了上面的方法,但它在较旧的浏览器上创建了一个重定向循环。

代码语言:javascript
复制
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 

RewriteCond %{SERVER_PORT} ^443$ 
RewriteCond %{HTTP_HOST} !^example\.com$ [NC] 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24593048

复制
相关文章

相似问题

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