mod_rewrite
根据您的服务器设置,可能可以mod_rewrite
用来设置环境变量,但是即使它有效,您也可能会遇到重定向和其他东西的问题。
.htaccess
RewriteRule ^ - [L,E=INC_FILE:stats\\stats.php]
应用程序.php
require_once getenv('INC_FILE');
PHP 配置文件
另一种选择当然是使用.php
配置文件。但是,使该配置文件中定义的值自动可用于所有脚本(就像环境变量一样),需要进行一些php.ini
调整。使用该auto_preped_file
选项,您可以定义在任何其他 php 文件之前解析的文件。
使用自动前置
php.ini
auto_prepend_file = "path\to\your\config\file.php"
或者,可以通过.htaccess设置值:
php_value auto_prepend_file "path\to\your\config\file.php"
配置文件
// you could for example use a constant
define('INC_FILE', 'path\include.php');
// or use putenv() if you want to continue using getenv()
putenv('INC_FILE=path\include.php');
应用程序.php
require_once INC_FILE;
// or
require_once getenv('INC_FILE');
使用手动包含
如果您不能/不想使用auto_prepend_file
,那么您必须将配置文件包含在您需要值的任何文件中:
应用程序.php
require_once 'path\to\your\config\file.php';
require_once INC_FILE;
// or
require_once getenv('INC_FILE');
PHP.ini 配置变量
关于您在评论中的问题,不,您不能在php.ini
配置文件中定义环境变量,但您可以轻松添加自定义配置变量,可以使用 读取get_cfg_var()
,尽管这样做不是一个好习惯。例子:
php.ini
[MyCustomSettings]
my_custom_settings.inc_file = "path\include.php"
应用程序.php
require_once get_cfg_var('my_custom_settings.inc_file');