【问题标题】:htaccess redirect www to non-www and http to httpshtaccess 将 www 重定向到非 www 和 http 到 https
【发布时间】:2016-09-11 22:13:49
【问题描述】:

我为www to non-wwwhttp to https 或这两者的组合找到了不同的解决方案。但是,并非所有这些都按预期工作。比如this one,它不能满足我下面的第三个条件。

条件

 1. domain.com/* -> https://domain.com/*
 2. www.domain.com/* -> https://domain.com/*
 3. https://www.domain.com/* -> https://domain.com/*

我结合了我找到的两个解决方案并得到了以下解决方案。它有效,但我不确定它是否正确编写和使用。我完全不知道使用 .htaccess 规则。所以我希望有人能伸出援手。谢谢!

RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^(.*) http://%1/$1 [R=301,NE,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

【问题讨论】:

  • 第一条规则应该有:RewriteRule ^ https://%1%{REQUEST_URI} [R=301,NE,L]
  • @anubhava 嗨,当您说“应该有”时,是指替换第二行吗?
  • 是的,我就是这个意思

标签: .htaccess redirect mod-rewrite


【解决方案1】:

我认为重定向 www to non-www 最好使用简单的 DNS CNAME 记录:

NAME:   www.domain.com.
TYPE:   CNAME
RECORD: domain.com

这将使您在 Apache 中只剩下 http to https 重定向,看起来您已经涵盖了。

【讨论】:

  • 嗨,从一开始我的 DNS 记录中就已经有了完全相同的 CNAME 记录,但是在我使用 .htaccess 代码之前它似乎没有帮助。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 2018-09-26
  • 2018-11-12
  • 2014-12-16
  • 1970-01-01
  • 2015-05-01
相关资源
最近更新 更多