gpt4 book ai didi

.htaccess - HTTP 到 HTTPS .htaccess

转载 作者:行者123 更新时间:2023-12-01 13:50:32 25 4
gpt4 key购买 nike

我无法对之前的帖子发表评论!!我想问一个问题,因为我是新来的。有人能给我解释一下吗:

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

实际上是在 .htaccess 文件中吗? “=”和“!=”之间有什么区别我正在使用 Cloudflare,Andrew 建议这个配置有效,但我一直在寻找对它的更深入的了解。对我来说,它说如果你收到一个 http 请求,请使用 http。如果我将 http 更改为 https,虽然它说重定向太多。所有帮助都适用。

最佳答案

%{HTTP:X-Forwarded-Proto} 是一个变量,用于访问 X-Forwarded-Proto HTTP header 的值,cloudflare 使用该 header 或 AWS(或其他负载均衡服务)来指示原始请求的协议(protocol)。这几乎总是“http”或“https”。

mod_rewrite documentation for RewriteCond说:

'=CondPattern' (lexicographically equal)

Treats the CondPattern as a plain string and compares it lexicographically to TestString. True if TestString is lexicographically equal to CondPattern (the two strings are exactly equal, character for character). If CondPattern is "" (two quotation marks) this compares TestString to the empty string.

换句话说,测试字符串 %{HTTP:X-Forwarded-Proto} 必须等于“http”。

另外:

You can prefix the pattern string with a '!' character (exclamation mark) to specify a non-matching pattern.

所以,!= 表示“不等于”。

因此条件测试请求是否最初是“http”,如果是,则规则将浏览器重定向到 https://%{HTTP_HOST}%{REQUEST_URI} (https)。

关于.htaccess - HTTP 到 HTTPS .htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32080269/

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