htaccess如果声明

geo*_*310 13 apache .htaccess

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

AddType x-httpd-php53 .php
Run Code Online (Sandbox Code Playgroud)

这在实时环境中运行良好,但不适用于测试环境并破坏站点.

有没有办法我可以把它放在if语句或服务器的IP或网站的URL或其他什么东西,以便它只在现场环境中生效?

jul*_*ulp 21

使用Apache 2.4,使用<If>/ <Else>directives(on %{HTTP_HOST}?)很容易.

<If "%{HTTP_HOST} == 'foo'">
    # configuration for foo
</If>
<Else>
    # default configuration
</Else>
Run Code Online (Sandbox Code Playgroud)

对于Apache 2.2及更早版本,我会-D在两个环境之一的Apache(选项)的启动命令行中添加一个参数,然后测试它是否存在<IfDefine>.

要在Windows上执行此操作,在Apache作为服务启动时,HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Apache2.<VERSION>\ImagePath
通过附加修改密钥注册表-DFOO.然后,你可以写:

<IfDefine FOO>
    # configuration for foo
</IfDefine>
<IfDefine !FOO>
    # default configuration
</IfDefine>
Run Code Online (Sandbox Code Playgroud)