1

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

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

我在这里读到了一些setEnvIf 解决方案,但我不能真正将手指放在它周围供我自己使用。

Fe 如果我有一个 .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 文件应该在版本控制中,并且应该在每个环境中运行而无需更改它。在这个例子中,它是一个重写,但也可以是错误文档或密码保护等。

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

丹尼斯

4

1 回答 1

0

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

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

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

于 2013-11-28T13:01:11.090 回答