gpt4 book ai didi

apache - www 和 https 重定向未按预期工作

转载 作者:太空宇宙 更新时间:2023-11-03 13:14:53 24 4
gpt4 key购买 nike

我似乎无法让 myredirects 按预期工作。我的目标是:

  1. 重定向 http://example.comhttps://www.example.com
  2. 重定向 http://www.example.comhttps://www.example.com

目标 1 已经实现,但问题是重定向 http://www.example.comhttps://www.example.com ,它实际上导致了 404 错误。我用了Ryte确定问题如下:

https://enmowe.com/ (403) is not reachable
http://enmowe.com/ (301) is forwarding to https://www.enmowe.com/ (200)
https://www.enmowe.com/ (200) is available
http://www.enmowe.com/ (404) is not reachable

我在我的 Apache VirtualHost 中尝试了以下操作:

方法一

    <If "%{HTTP_HOST} != 'www.enmowe.com'">
Redirect "/" "https://www.%{HTTP_HOST}/$1"
</If>

<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/" "https://www.%{HTTP_HOST}/$1"
</If>

方法二。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www.\.enmowe\.com)?$
RewriteRule (.*) https://www.enmowe.com/$1 [R=301,L,NC]

方法三。

RewriteEngine on
RewriteCond %{SERVER_NAME} =enmowe.com
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

现在有点迷茫

最佳答案

如果协议(protocol)主机名不正确,您需要重定向。所以你应该制定这两个条件:

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://www.enmowe.com/$1 [R=301,L,NC]

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

https://enmowe.com 根本无法访问的事实与此无关。如果您希望它可以访问并且您拥有正确的证书,请将主机名作为 ServerAlias 添加到 https 服务器的定义中。

顺便说一句:请删除 virtual-hosts 标签,因为它与您的问题无关。

关于apache - www 和 https 重定向未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46778836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com