Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.htaccess中使php_值有条件吗?_Php_Apache_.htaccess - Fatal编程技术网

在.htaccess中使php_值有条件吗?

在.htaccess中使php_值有条件吗?,php,apache,.htaccess,Php,Apache,.htaccess,我需要在.htaccess中设置php_值session.save_路径。 这似乎需要一个完整的路径,相对路径似乎不起作用 我的Web应用程序在Windows和Linux服务器上运行,出于部署原因,我希望在两个系统上保持.htaccess文件相同 是否可以在.htaccess文件本身中引用.htaccess所在的目录,如下所示: php_value session.save_path”/sessions 在每个系统上自动填写?我认为任何Apache指令都不可能做到这一点 但您可以使用PHP实现这

我需要在.htaccess中设置php_值session.save_路径。 这似乎需要一个完整的路径,相对路径似乎不起作用

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

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

php_value session.save_path”/sessions


在每个系统上自动填写?

我认为任何Apache指令都不可能做到这一点

但您可以使用PHP实现这一点:

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

这里的
\uuuu FILE\uuuuu
是保存当前PHP脚本文件的文件系统路径并返回该文件的父目录的

你可以检查它是否可以与

%{ENV:variable}

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

然后:


通过这种方式,它将适用于目录中的任何php脚本。

例如,在apache.htaccess中,仅将php_值应用于php文件

SetEnvIf Request_URI ".php$" IS_PHP
<If "-T env('IS_PHP')">
    php_value auto_prepend_file "./init.php"
</If>
SetEnvIf请求_URI“.php$”是_php
php\u值自动\u预结束\u文件“/init.php”

有趣的问题。也许可以使用环境变量——我不知道reference:Thanx,但我更愿意使用.htaccess,因为我有多个使用会话的脚本。对于.htaccess,我只需要在一个地方设置这个路径…+1@Dylan:Apache不支持在.htaccess中使用变量
mod_env
允许您设置(仅)环境变量,
mod_rewrite
允许您在重写规则和条件中使用它们,但仅此而已。不幸的是,只能在
mod_rewrite
中使用。
// autoprepend.php
ini_set('session.save_path', __DIR__ . '/sessions');
SetEnvIf Request_URI ".php$" IS_PHP
<If "-T env('IS_PHP')">
    php_value auto_prepend_file "./init.php"
</If>