我正在htaccess文件中设置一个环境变量,它前面加上“REDIRECT_”。据我所知,这是由URL重写造成的......事情是,我没有做任何重写(我知道)。
我的网站空间包含两个文件:
的.htaccess
SetEnv Foo "bar"
的index.php
<?php
print_r($_ENV);
现在,我猜测这可能与以下事实有关:这是在1和1的共享主机包上..还有什么我应该检查或有任何人以前经历过这个?或者我只是错过了什么?
干杯
答案 0 :(得分:3)
使用 PHP作为CGI Wrapper来触发该问题。如果PHP作为mod_php apache模块运行,它不会为您的变量添加前缀。
原因是内部重定向处理因此apache使用REDIRECT_前缀重新创建变量: - /
使用PHP-FPM或mod_php
如果你想使用CGI Wrapping for PHP将它放入你的.htaccess:
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
答案 1 :(得分:0)
首先,SetEnv
的语法错误。它应该是这样的:
SetEnv Foo "bar"
然后要从PHP访问此字段,您需要执行以下操作:
echo $_SERVER["Foo"];
哪个应该显示为&#34; bar&#34;。