htaccess 设置环境变量在名称中添加 REDIRECT_ 前缀

问题描述 投票:0回答:1

我正在尝试根据 .htaccess 文件中的请求 url 设置环境变量:

  RewriteRule ^(en|de|fr|ar)/(.*)$ /$2 [E=language:$1]

这似乎可行,但在 php 中,变量名称中会添加 REDIRECT_ 前缀一到两次: REDIRECT_REDIRECT_languageREDIRECT_language

所以问题是:为什么要添加这个前缀?以及如何避免这种情况?获取指定的环境变量。

服务器是Centos 7。

php .htaccess environment-variables centos7
1个回答
0
投票
当重写引擎“重新启动”(实际上是“循环”)时,

REDIRECT_

前缀会添加到
directory上下文中。这取决于您在 .htaccess
 文件(以及服务器配置中的 
<Directory>
 容器)中的指令。因此,为了了解为什么会发生这种情况以及如何避免这种情况,我们需要查看您的整个 
.htaccess
 文件。 (但除此之外,这是在 
directory 上下文中使用环境变量和 mod_rewrite 的副作用。)

根据您的服务器配置,您也许可以使用以下命令访问“顶级”变量:

<?php $value = apache_getenv('language',true);
    
© www.soinside.com 2019 - 2024. All rights reserved.