如何根据域有条件地向Apache .htaccess添加一行?

时间:2009-06-01 12:40:32

标签: apache .htaccess

我的本​​地开发PC默认设置为使用PHP5,我的客户端主机(1and1.co.uk)默认设置为使用PHP4。

要在1and1帐户上启用PHP5,您必须将以下行添加到.htaccess文件中:

AddType x-mapp-php5 .php

如果我将此行添加到我的本地.htaccess文件中,则会破坏我的PHP。

如何根据域(或其他一些参数?)有条件地添加此行,因此它只由实际站点而不是我的开发站点执行?

我希望能够上传(FTP)我的整个源代码树,而不必担心必须记住在服务器上编辑.htaccess。

e.g。

<IfDomain www.example.com>
    AddType x-mapp-php5 .php
</IfDomain>

... rest of .htaccess

这可能吗?

我无法访问服务器配置文件,只能访问.htaccess

提前致谢。

4 个答案:

答案 0 :(得分:1)

对于其他人来看这个,并使用带有virtualhost指令的本地服务器:花了我一段时间,并没有找到在线工作的方法(可能是因为我的MAMP apache版本还没有2.4或者其他),但这个做了

忘记在.htaccess文件中添加“条件”行:您可以定义在虚拟主机设置中使用哪个.htaccess文件!

所以只需创建一个文件.htaccess_dev,并将此行添加到本地/ dev机器上的虚拟主机定义中:

AccessFileName .htaccess_dev

所以它变成了这样:

<virtualhost>
ServerName www.example.local
DirectoryRoot /var/www/www.example.local
AccessFileName .htaccess_dev
</virtualhost>

答案 1 :(得分:0)

试试这个。我不知道它是否会奏效。文档中使用的术语表明它应该,但由于没有人做过你想要做的事情,所以它有点悬而未决。

<Location http://www.example.com/>
    AddType x-mapp-php5 .php
</Location>

答案 2 :(得分:0)

我知道您可以使用VirtualHost标记在httpd.conf中执行特定于服务器的命令。 (http://httpd.apache.org/docs/1.3/vhosts/ip-based.html

虽然我不是100%确定您可以在.htaccess文件中使用它,但我建议您尝试以下操作:

<VirtualHost www.example.com>
    AddType x-mapp-php5 .php
</VirtualHost>

答案 3 :(得分:0)

您可以使用VirtualHost指令来完成此任务。当我想让django与mod_python只在子域

运行时,我也做了同样的事情
<VirtualHost *:80>
DocumentRoot /www/docs/path
ServerName www.example.com
....

AddType x-mapp-php5 .php
</VirtualHost>