为多个环境配置.htaccess文件

时间:2013-11-12 14:26:53

标签: git apache .htaccess mod-rewrite

我在我的项目中使用Git并在本地虚拟机中工作。 我遇到的问题是有时远程.htaccess文件包含f.e.一个RewriteRule,阻止它在不同的环境中正常工作。

由于在Git中跟踪更改,我不能简单地更改本地计算机上的.htaccess,而不必忽略Git中更改的文件状态。

我在这里读过一些关于setEnvIf solution的信息,但我不能真正地将它放在它周围以供我自己使用。

F.e。如果我有一个.htaccess文件:

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

我希望能够说:

<if not on local machine>
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
</if>

或者甚至可以做像

这样的事情
If host = dev
...
if host = acc
...

通过设置dev主机名始终以“.dev”结尾,而acc总是像“acc。*”

我想有一些方法尽可能地修复它,这样就不需要为每个项目更改行。 .htaccess文件应该在版本控制中,并且应该在每个环境上运行而无需更改它。在这个例子中它是一个rewriterule,但也可能是errordocument或密码保护等。

希望我能清楚地解释我的问题。谢谢!

丹尼斯

1 个答案:

答案 0 :(得分:0)

我改变了方法。我被告知通过git repo强制配置文件是不明智的。

我已从存储库中删除.htaccess并忽略此文件。我发送了一个示例.htaccess文件,f.e。 htaccess的-例子。在每个环境中,我都可以将此文件复制到.htaccess,然后进行必要的本地更改。

我将找到一种创建deployscript的方法,这样我就可以通过复制f.e来更改.htacces文件。跟踪.htaccess-production文件到.htaccess。