.htaccess根据主机名设置PHP值

Mor*_*dur 5 php apache .htaccess

对于我们的项目,我们需要根据环境(开发/生产)设置几个PHP值,最值得注意的是会话保存路径以及一些跟踪和分析设置.

我们不希望在PHP脚本中设置它们,因为由于一些可怕的遗留代码需要进行大量更改而且我们不希望每次在将它提交到git之前更改.htaccess(但我们需要.htaccess在源代码管理中).

有没有办法在.htaccess中做这样的事情:

if (hostname == "dev.example.com") {
  php_value session.save_path /tmp
  [...]
}
Run Code Online (Sandbox Code Playgroud)

Pis*_*3.0 6

您可以在Apache的virtualhost配置中定义规则(上面一步.htaccess,您必须要求管理员编辑它):

<VirtualHost *:80>                                                              
    ServerName piskvor.example.com
    ServerAlias *.host2.example.com
    php_value session.save_path /home/piskvor/tmp
</VirtualHost>
<VirtualHost *:80>                                                              
    ServerName someotherhost.example.org
    php_value session.save_path /tmp
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这使您可以以不同方式配置每个主机(通过主机名或主机名通配符).大多数较新的Apache设置都支持这一点.