.htaccess 中 !on 和 off 的区别

Difference between !on and off in .htaccess

下面几段代码有区别吗:

RewriteCond %{HTTPS} off 

RewriteCond %{HTTPS} !on

也许在他们如何处理 null 之类的方面?从表面上看,它们似乎应该工作相同,但我在不同站点的 .htaccess 文件中遇到过这两种变体。

Perhaps in how they handle null, or something?

嗯,是的,如果 HTTPSnull、未设置或设置为“on”以外的任何值,则表达式 !on 将成功(或者更确切地说,不 包含 “on”)。而表达式 off 仅在 HTTPS 包含“off”时才成功。

但是,这里的要点是 HTTPS 服务器变量只能准确设置为“开”或“关”(全部小写)。您的服务器一定有问题,因为这个服务器变量根本没有设置或完全设置为其他

因此,在此上下文中使用off还是!on实际上只是个人喜好。

另请参阅 my answer 网站管理员堆栈中的以下问题: