【问题标题】:My website http://www.alfarestents.com/ to https://www.alfarestents.com/ redirection doesn't work我的网站 http://www.alfarestents.com/ 到 https://www.alfarestents.com/ 重定向不起作用
【发布时间】:2021-07-18 06:54:24
【问题描述】:

http://www.我的版本没有被重定向到 https 版本(所有其他变体都被正确重定向)

网址:

http://www.alfarestents.com/ https://www.alfarestents.com/

Ht访问代码:

RewriteEngine On 


RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS} ^on 
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteBase /
RewriteCond %{HTTP_HOST} ^alfarestents.com [NC]
RewriteRule ^(.*)$ https://www.alfarestents.com/$1 [L,R=301]

【问题讨论】:

  • 谢谢奥尔森。我已经编辑了内容
  • 问题是第一个条件模式^[^.]+\.[^.]+$ 不接受带有两个点的主机名。只需将其增强为^(www\.)?[^.]+\.[^.]+$
  • 这里还有一些其他奇怪的细节,我实际上希望这些规则都不起作用。在我看来你实现了无限循环......第二个条件不应该包含否定吗?第二个重写规则到底应该有什么意义?
  • @arkascha 谢谢,让我修改一下再试一次。
  • @arkascha 我用我有限的知识尝试过。将初始代码更改如下^(www\.)?[^.]+\.[^.]+$

标签: .htaccess redirect https


【解决方案1】:

让我们从头开始:

RewriteEngine On 
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,R=301,END]

R=302临时重定向开始可能是个好主意,并且只有在一切按预期工作后才将其更改为R=301永久重定向。

您应该在真正的 http 服务器的主机配置中实现这些规则。您也可以使用分布式配置文件,但这会带来性能损失。此外,您需要先启用对此类文件的考虑。

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 2014-03-10
    • 2018-06-11
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2021-04-15
    • 2018-01-31
    相关资源
    最近更新 更多