【问题标题】:.htaccess incorrectly http redirects to http://www.htaccess 错误地 http 重定向到 http://www
【发布时间】:2019-11-01 23:49:09
【问题描述】:

我正在尝试将所有请求重定向到 https 非 www 子域,如下所示:

http://sub.example.com -> https://sub.example.com

http://www.sub.example.com -> https://sub.example.com

https://www.sub.example.com -> https://sub.example.com

使用这个.htaccess 文件:

RewriteEngine On 

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://sub.example.com%{REQUEST_URI} [L,R=301,NE]

但是如果我访问会发生什么

http://sub.example.com

它被重定向到

https://www.sub.example.com

我不明白。 .htaccess 文件中没有其他行。我在 SO 阅读并尝试了许多其他问题,但无法完成。

【问题讨论】:

  • 这在您当前的规则中没有发生。您是否尝试过在新浏览器中进行测试以避免旧缓存?
  • 您的应用程序逻辑中是否有任何内容会触发重定向?我同意 anubhava - 您发布的代码中没有任何内容会导致这种重定向。
  • 没有(它是角度应用程序,但没有重定向)。父目录中也没有 .htaccess

标签: .htaccess mod-rewrite https no-www


【解决方案1】:

在 DigitalOcean 上查看这个问题,第一个答案似乎与您正在寻找的内容相匹配,似乎解决方案是从此替换 vhost conf 文件中的 RewriteCond(在 <VirtualHost *:443> 部分内):

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.*)$ [NC]

到这里:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

如 screenpilot 的回答中所述,here

【讨论】:

  • 欢迎提供解决方案链接,但请确保您的答案在没有它的情况下有用:add context around the link 这样您的其他用户就会知道它是什么以及为什么会出现,然后引用最相关的您链接到的页面的一部分,以防目标页面不可用。 Answers that are little more than a link may be deleted.
  • 谢谢,我试图编辑我的答案,你能再检查一遍吗?
  • 请注意您使用的引号:!= "
  • 好的,我会记住这一点,但这些是我在 iOS 中的默认设置
  • 不幸的是它没有工作。我已经通过在 sub.domain.com 中创建 www 文件夹并将单独的 htaccess 文件重定向到sub.domain.com 对其进行了整理。不过我会继续寻找更好的解决方案
猜你喜欢
  • 2013-07-01
  • 2016-01-20
  • 2018-11-12
  • 1970-01-01
  • 1970-01-01
  • 2015-02-16
  • 1970-01-01
  • 2017-09-08
  • 1970-01-01
相关资源
最近更新 更多