在目前的项目中,我们有独立的开发和生产。 两者上的代码都在单个SVN存储库中。
问题在于从外部进入开发环境。 假设我们有两个独立的prod和dev服务器:
1.2.3.4 -> production 5.6.7.8 -> development
这个想法是在两台服务器上使用与Auth相同的.htaccess,但其行为必须是:
它应该是这样的(伪代码):
IF $SERVER_IP == 5.6.7.8 THEN require_auth ELSE do_not_require_auth
我们试图用尽可能less的额外模块来实现这一目标,但遗憾的是,我们无法根据服务器信息find关于如何在.htaccess中执行条件的任何信息。
这甚至有可能吗?
您应该将这些添加到您的.htaccess身份validation/授权指令。
setenvif Server_Addr=1.2.3.4 okpublic allow from env=okpublic require valid-user satisfy any
如果服务器地址是1.2.3.4,那么我们设置一个环境variables,我们将在第二行使用它来允许任何人访问。 如果服务器地址不是1.2.3.4,则用户必须进行身份validation。 如果满足这两个规则中的任何一个,则授予访问权限。
我做了什么是奇怪的,但哦,如果这是你想要的:)
另一个解决scheme,使用svn propedit svn:ignore在生产服务器上执行svn更新时忽略.htaccess文件就简单得多了。 如果你需要在prod和dev上有不同的.htaccess文件,那么也许你想看看分支,合并等,或者多用途的.htaccess文件只是更好。 我也想提到svn控件。