2011-02-10 36 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>