为不同的服务器提供不同的.htaccess文件的最佳方法是什么?

时间:2013-01-30 10:25:07

标签: git .htaccess .htpasswd

我有一个源代码控制(Git)的网站,并为两个不同的服务器使用两个分支。 master分支反映了生产网站,develop分支是部署到我们测试服务器的分支。

但是,测试服务器是公共可访问的,但到目前为止已受到 .htaccess .htpasswd 的保护。

.htaccess 文件中有很多RewriteRule指令,并且想知道:让两台服务器使用相同的 .htaccess 规则的最佳方法是什么,但测试网站是否也有 .htpassw 规则?

2 个答案:

答案 0 :(得分:1)

  1. 明显的方式 - 不同分支中的不同.htaccess,合并时合并文件
  2. Git风格的方式 - 涂抹/清除过滤器(过滤器后面的脚本)将常用关键字转换为最终代码,这取决于分支(以及后向转换)
  3. 独立于SCM的方式 - 共享代码,由交付阶段的二手build-deploy处理并获取可用文件(如果网站不是repos的工作目录)

答案 1 :(得分:0)

通常,您不应在代码存储库中拥有任何与密码相关的信息。

也就是说,假设您从开发分支到主分区,那么您实际上只能在开发分支和主分区中有一个文件。您可以使用git hook(可能是post-receive,具体取决于您的机器的设置方式)来检查master时删除文件,但这非常脆弱。

更好的方法是根本没有git中的文件,而是手动维护它。你可以在测试服务器上有一个git hook,它从其他地方复制.htpasswd文件。或者您甚至可以将该文件保存在单独的存储库中,只需将其符号链接到测试服务器的目录中即可。