【问题标题】:Change Mod RewriteBase depending on domain/url根据域/网址更改 Mod RewriteBase
【发布时间】:2012-12-18 09:22:49
【问题描述】:

我想根据域更改 RewriteBase。在一个完美的世界中,我会在 .htaccess 本身中执行此操作。但我的理解是这是不可能的。

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

所以在服务器上我必须将 RewriteBase 设置为 /mysite

那么我的问题是,解决这个问题的最佳解决方案是什么?我们可以使用 git hooks 在裸服务器 repo 上触发 bash 脚本。

当 repo 为 --bare 并使用此 post 接收挂钩时,将 .htaccess 添加到 .gitignore 是否有效?:

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

如果我不清楚任何事情,请发表评论。感谢所有帮助!

【问题讨论】:

    标签: git apache .htaccess mod-rewrite githooks


    【解决方案1】:

    这种 post-receive 挂钩可以工作,但您最终可能会收到 Not a git repository '.'” 错误消息。

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

    问题是当.htaccess.gitignore 文件中时,它是否会在签出文件时删除.htaccess 文件

    不,你不会删除它。

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

    【讨论】:

    • 钩子有效。我知道的。问题是,当 .htaccess 在 .gitignore 文件中时,它是否会在检出文件时删除 .htaccess 文件?有没有更好的方法来做到这一点?此解决方案的一个问题是您永远无法编辑 .htaccess 文件并通过 git 在服务器上更新它。
    • @MathiasMadsenStav 我已编辑我的答案以解决您的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多