setEnvIf和RewriteCond没有抓住它

时间:2017-03-14 08:08:00

标签: apache mod-rewrite setenvif

我在Apache 2.4中的vhost中设置了这个

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等指令不会看到变量   用它设置。

或此链接:http://www.onlinesmartketer.com/2010/05/27/apache-environment-variables-visibility-with-setenv-setenvif-and-rewriterule-directives/#Summary

我所做的应该是有效的。

怎么了? 谢谢;)

0 个答案:

没有答案