2011-02-10 111 views
5

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

我的web应用程序在Windows和Linux服务器上运行,并且为了部署的原因,我想让两个系统上的.htaccess文件保持一致。

是否有可能引用其中的.htaccess是目录,在.htaccess文件本身,这样的事情:

php_value session.save_path的 “<%Systempath下> /会议”

与<% systempath>会自动填入每个系统中?

+0

有趣的问题。这可能是使用环境变量 - 我不知道 – 2011-02-10 13:24:58

+0

参考:http://httpd.apache.org/docs/2.0/mod/mod_env.html#setenv – 2011-02-10 13:28:14

回答

1

我不认为这是可能的任何Apache指令。

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

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

这里__FILE__是保存在文件系统路径添加到当前的PHP脚本文件,并dirname返回该文件的父目录的magic constant

+0

Thanx,但我宁愿在.htaccess因为我有多个使用会话的脚本。使用.htaccess我只需要在一个地方设置这个路径... – Dylan 2011-02-10 13:42:36

1

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

您可以检查它是否会更多钞票或不

%{ENV:variable} 
2

可以自动在前面加上一个PHP文件,该文件将配置PHP用的ini_set()

# .htaccess 
php_value auto_prepend_file "autoprepend.php" 

然后:

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

这种方式可以用于目录中的任何php脚本。

0

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

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