我的.htaccess
文件中有以下行来选择要使用的 PHP 版本:
AddType x-httpd-php53 .php
这在实时环境中效果很好,但不适用于测试环境并破坏站点。
有没有办法可以通过服务器的 IP 或网站的 URL 或其他东西将它放在 if 语句或其他东西中,以便它只在实时环境中生效?
使用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>
您可以做的另一种选择是将测试环境中的 httpd.conf 更改为使用“ .htaccess-test ”而不是“ .htaccess ”。
这可以通过修改 httpd.conf 并在任何块之外添加以下行来完成:
AccessFileName .htaccess-test
注意:如果要将 AccessFileName 应用于特定的 VirtualHost,可以在 <VirtualHost> 块中添加它。
这意味着测试环境将使用 .htaccess-test,而生产环境将使用 .htaccess。因此,您可以自由地分别配置每个环境。
然后在 .htaccess 旁边创建一个名为 .htaccess-test 的文件。使用您的测试配置修改 .htaccess-test,然后最后在测试环境服务器中重新启动 Apache Web 服务器。