2012-12-18 38 views
1

我想根据域更改RewriteBase。在一个完美的世界中,我会在.htaccess中做到这一点。但我的理解是,这是不可能的。根据域/ url更改Mod RewriteBase

问题是我有我们的开发服务器上的本地git回购和回购。开发服务器上的回购是在一个子文件夹(example.com/mysite)内,而本地只是example.lo。

所以我必须设置RewriteBase到服务器上/ mysite的

我的问题则是,什么是解决这个最好sollution?我们可以使用git挂钩在裸露的服务器仓库中触发bash脚本。

将它的工作给的.htaccess添加到的.gitignore时回购是--bare并使用这个职位收到钩?:在评论

#!/bin/sh 
GIT_WORK_TREE=/Users/Admin/Sites/mysite git checkout -f 

下降,如果im不清任何东西。所有帮助表示赞赏!

回答

1

这种后接收挂钩可以工作,但最终可能会出现Not a git repository '.'”错误消息。

请参阅“Git checkout in post-receive hook: “Not a git repository '.'”:您也应该设置GIT_DIR,而不仅仅是GIT_WORK_TREE

的问题是,它是否会删除.htaccess文件时,它会检查出文件,当.htaccess.gitignore文件

不,你不会删除它。

如果您仍然需要更新其值(取决于域)并使用git进行版本化,请使用内容过滤器:请参阅“What's the easiest way to deal with project configuration files?”。

+0

挂钩的作品。我知道。问题是,当.htaccess文件检出时,是否会删除.htaccess文件,何时.htaccess文件位于.gitignore文件中?有没有更好的方法来做到这一点? 这个问题的一个问题是,你永远不能编辑你的.htaccess文件,并通过git在服务器上更新它。 – Spoeken

+1

@MathiasMadsenStav我编辑了我的答案来解决你的问题。 – VonC