也可能是由于服务器重定向。
请检查phpinfo输出并检查$_SERVER['REDIRECT_MAGE_IS_DEVELOPER_MODE']
变量。
说明:
如果您正在使用Apache模块mod_rewrite并想要设置一些环境变量,则Apache手册说可以使用CGI在CGI中访问这些变量$ENV{VAR}
。在PHP中,您可能需要编写代码$_ENV['VAR']
以获取VAR的值,但是如果需要通过$_SERVER
,则必须使用,并且以一些不同的方式进行访问:
- 示例:.htaccess和example.php
RewriteRule上的RewriteEngine ^?var1 =([[^;] ); var2 =([^;])$ \-[E = VAR1:$ 1,E = VAR2:$ 2]
- 示例:.htaccess和index.php
RewriteRule上的RewriteEngine ^ index.php $-[L] RewriteRule?var1 =([[^;] ); var2 =([^;])$ \ index.php [E = VAR1:$ 1,E = VAR2:$ 2]
注意:如果有任何RewriteRule匹配,则内部重定向将重新启动(在最后定义的规则之后,或者在具有L标志的匹配规则之后立即),再次检查整个规则集。对于内部重定向,每个定义的VAR都有一个“ REDIRECT_”前缀,即VAR1将是REDIRECT_VAR1,VAR2将是REDIRECT_VAR2。
当然,您可以(另外)重新定义原始VAR:
RewriteRule上的RewriteEngine ^ index.php $ \-[E = VAR1:%{REDIRECT_VAR1},E = VAR2:%{REDIRECT_VAR2},L] RewriteRule?var1 =([[^;] ); var2 =([^;]) $ \ index.php [E = VAR1:$ 1,E = VAR2:$ 2]
这样,您将拥有$_SERVER['REDIRECT_VAR*']
和$_SERVER['VAR*']
。
给出的示例仅用于说明,在任何情况下都不适合您的需求。.htaccess示例中的“ \”仅用于显示目的,不应出现在真实的.htaccess文件中。参数分隔符“;” 链接中也可以是“&”,但这可能会给HTML / XHTML带来麻烦。有关此问题的更多信息,请参见以下页面: