我在 Apache 2.4 的虚拟主机中设置了这个
SetEnvIf X-Forwarded-Proto https HTTPS=on
在我的 .htaccess 中,我添加了这条规则:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
但我得到一个无限循环,因为我的 RewriteCond 没有看到 HTTPS 的值。
我做一个phpinfo(INFO_VARIABLES);
,我得到$_SERVER['HTTPS'] on
我在我的 errorLog 中进行了调试以得到这个RewriteCond: input='off' pattern='off' => matched
如你所见 RewriteCond 没有看到我设置的值。
我读了一些文档
SetEnv 指令在请求处理期间运行较晚,这意味着 SetEnvIf 和 RewriteCond 等指令将看不到使用它设置的变量。
我所做的应该是有效的。
怎么了 ?谢谢 ;)