htaccess SetEnv REDIRECT_前缀

时间:2014-01-15 12:36:57

标签: apache .htaccess

我正在htaccess文件中设置一个环境变量,它前面加上“REDIRECT_”。据我所知,这是由URL重写造成的......事情是,我没有做任何重写(我知道)。

我的网站空间包含两个文件:

的.htaccess

SetEnv Foo "bar"

的index.php

<?php
print_r($_ENV);

现在,我猜测这可能与以下事实有关:这是在1和1的共享主机包上..还有什么我应该检查或有任何人以前经历过这个?或者我只是错过了什么?

干杯

2 个答案:

答案 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;。