如果发送了特定的 HTTP 标头,我正在尝试设置环境变量。
所以我尝试了几种不同的方式,我将详细介绍
Header set MY_HTTP_HEADER "1"
# tests with with SetEnvIf
SetEnvIf %{HTTP:MY_HTTP_HEADER} ^1$ THE_ENV=ok
SetEnvIf MY_HTTP_HEADER ^1$ THE_ENV=ok
SetEnvIf %{MY_HTTP_HEADER} ^1$ THE_ENV=ok
# tests with RewriteRule
RewriteCond %{HTTP:MY_HTTP_HEADER} ^1$
RewriteRule .* index.php [L,E=THE_ENV:ok]
RewriteCond MY_HTTP_HEADER ^1$
RewriteRule .* index.php [L,E=THE_ENV:ok]
我肯定错过了一些东西,因为上面的所有代码都不起作用。
编辑
正确的是SetEnvIf MY_HTTP_HEADER ^1$ THE_ENV=ok
,就像@anubhava指出的那样,如果你将标题设置在同一个.htaccess中,它就不起作用,所以我创建了另一个页面,用这个标题调用带有CURL的实际页面curl_setopt($curl,CURLOPT_HTTPHEADER,array('MY_HTTP_HEADER: 1'));