14

我的.htaccess文件中有以下行来选择要使用的 PHP 版本:

AddType x-httpd-php53 .php

这在实时环境中效果很好,但不适用于测试环境并破坏站点。

有没有办法可以通过服务器的 IP 或网站的 URL 或其他东西将它放在 if 语句或其他东西中,以便它只在实时环境中生效?

4

2 回答 2

27

使用Apache 2.4<If> ,使用/<Else>指令(在%{HTTP_HOST}?)很容易。

<If "%{HTTP_HOST} == 'foo'">
    # configuration for foo
</If>
<Else>
    # default configuration
</Else>

对于Apache 2.2及更早版本,我将在两种环境之一中的 Apache 启动命令行(-D选项)中添加一个参数,然后通过<IfDefine>.

要在 Windows 上执行此操作,将 Apache 作为服务启动,请HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Apache2.<VERSION>\ImagePath
通过附加-DFOO. 然后,您可以编写:

<IfDefine FOO>
    # configuration for foo
</IfDefine>
<IfDefine !FOO>
    # default configuration
</IfDefine>
于 2012-12-21T14:56:43.523 回答
3

您可以做的另一种选择是将测试环境中的 httpd.conf 更改为使用“ .htaccess-test ”而不是“ .htaccess ”。

这可以通过修改 httpd.conf 并在任何块之外添加以下行来完成:

AccessFileName .htaccess-test

注意:如果要将 AccessFileName 应用于特定的 VirtualHost,可以在 <VirtualHost> 块中添加它。

这意味着测试环境将使用 .htaccess-test,而生产环境将使用 .htaccess。因此,您可以自由地分别配置每个环境。

然后在 .htaccess 旁边创建一个名为 .htaccess-test 的文件。使用您的测试配置修改 .htaccess-test,然后最后在测试环境服务器中重新启动 Apache Web 服务器。

于 2015-11-25T15:40:34.547 回答