我在我的项目中使用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或密码保护等。
希望我能清楚地解释我的问题。谢谢!
丹尼斯
答案 0 :(得分:0)
我改变了方法。我被告知通过git repo强制配置文件是不明智的。
我已从存储库中删除.htaccess并忽略此文件。我发送了一个示例.htaccess文件,f.e。 htaccess的-例子。在每个环境中,我都可以将此文件复制到.htaccess,然后进行必要的本地更改。
我将找到一种创建deployscript的方法,这样我就可以通过复制f.e来更改.htacces文件。跟踪.htaccess-production文件到.htaccess。