【问题标题】:Conditional .htaccess based on apache server API基于 apache 服务器 API 的条件 .htaccess
【发布时间】:2015-08-04 05:42:59
【问题描述】:

我在使用 .htaccess 时遇到了问题,特别是更改了 include_path 值。在我的开发服务器上,PHP 作为一个模块运行,所以我可以使用:

php_value  include_path "/whatever/path/i/want"

现在,当我迁移到真实服务器时,PHP 以 CGI/FastCGI 运行,所以我的最后一个技巧不起作用,所以我学会了艰难的方法,并使用 apache 处理程序让它全部工作,因此它加载了一个自定义更改包含路径的 php.ini:

AddHandler php5-fastcgi .php
Action php5-fastcgi /cgi-bin/php.fcgi

现在问题来了。对于每种情况,我都需要一个代码块,因此如果作为 CGI/FastCGI 执行,则它使用处理程序,如果作为模块执行,则使用 php_value。

为 fastcgi 找到了这个,但没有成功。

<IfModule fastcgi_module>
   AddHandler php5-fastcgi .php
   Action php5-fastcgi /cgi-bin/php.fcgi
</IfModule>

如果在这两种情况下都有另一种方法来更改 include_path,而不取决于 PHP 的执行方式,并且不将其硬编码到代码中,那将非常感激。

【问题讨论】:

    标签: php apache .htaccess fastcgi mod-php


    【解决方案1】:

    .user_ini 文件应该在 CGI/FastCGI 的情况下为您提供帮助。通常它会被 mod_php 忽略。

    【讨论】:

      【解决方案2】:

      感谢您的回答我已经解决了这样的问题。

      <IfModule mod_php5.c>
         php_value  include_path "path/I/want"
      </IfModule>
      <IfModule !mod_php5.c>
         AddHandler php5-fastcgi .php
         Action php5-fastcgi /cgi-bin/php.fcgi
      </IfModule>
      

      无论如何,我不知道 user.ini,但很高兴知道存在另一种解决方案。

      【讨论】:

        猜你喜欢
        • 2011-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-15
        • 2011-07-09
        • 2012-04-16
        • 1970-01-01
        • 2013-01-07
        相关资源
        最近更新 更多