在.htaccess中使php_value有条件?

时间:2011-02-10 13:23:37

标签: php apache .htaccess

我需要在.htaccess中设置php_value session.save_path。 这似乎需要一条完整的路径,相对路径似乎不起作用。

我的web应用程序在Windows和Linux服务器上运行,出于部署原因,我想在两个系统上保持.htaccess文件相同。

是否可以在.htaccess文件中引用.htaccess所在的目录,如下所示:

php_value session.save_path“<%systempath> / sessions”

与<%systempath>在每个系统上自动填写?

4 个答案:

答案 0 :(得分:2)

您可以自动添加一个php文件,该文件将使用ini_set()

配置php
# .htaccess
php_value auto_prepend_file "autoprepend.php"

然后:

// autoprepend.php
ini_set('session.save_path', __DIR__ . '/sessions');

这样它就适用于目录中的任何php脚本。

答案 1 :(得分:1)

我认为任何Apache指令都不可能。

但你可以用PHP做到这一点:

ini_set('session.save_path', dirname(__FILE__).'/sessions');

此处__FILE__magic constant,它保存当前PHP脚本文件的文件系统路径,dirname返回该文件的父目录。

答案 2 :(得分:1)

我知道你可以使用一些环境变量。

您可以使用

检查它是否可行
%{ENV:variable}

答案 3 :(得分:1)

在apache .htaccess中例如只应用php_value一个php文件。

SetEnvIf Request_URI ".php$" IS_PHP
<If "-T env('IS_PHP')">
    php_value auto_prepend_file "./init.php"
</If>