php - 如何在使用 SVN 时密码保护开发人员但不能使用?

标签 php svn passwords

我们有这个工作流程: 开发在 dev.example.com 上完成 更改提交到 SVN,然后导出到实时站点。 实时站点位于 www.example.com

我想用密码保护 dev.example.com,但如果我用 .htaccess 来做,我们将在现场使用相同的 .htaccess,它也会得到密码保护。

我们使用的是 Dreamhost 共享主机,我有 SSH 访问权限,但我无法编辑 Apache 的配置 .conf 文件。

我们不希望为 dev&live 提供单独的 .htaccess 文件,并在 SVN 中忽略 .htaccess,因为对 .htaccess 也进行了更新。

那我该怎么办?

最佳答案

如果服务器上启用了 mod_setenvif,您可以将其添加到您的 .htaccess 文件中:

SetEnvIfNoCase ^HOST$ .+ unauthenticated
SetEnvIfNoCase ^HOST$ ^dev\.example\.com$ !unauthenticated

AuthType Basic
AuthName "Secured"
AuthUserFile /path/to/.htpasswd
Require valid-user
Order allow,deny
Allow from env=unauthenticated
Satisfy any

这基本上是设置一个名为“unauthenticated”的环境变量,但如果 HOST(浏览器请求的主机)恰好是“dev.example.com”,则将其取消设置。在 Directory 指令中,“满足任何”告诉 Apache 如果满足任何一个条件就允许请求。这意味着在“dev.example.com”上,不会设置环境变量,因此,您需要输入密码。对于任何其他主机,将设置该变量,这样 Apache 就不会要求提供凭据。

关于php - 如何在使用 SVN 时密码保护开发人员但不能使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6143176/

相关文章:

Javascript - 登录框不起作用

php - 在 Woocommerce 结账表单中启用确认密码

javascript - 将数组从 PHP 迭代传递到 JS

php - 仅比较来自数据库 Timestamp Laravel 的日期

svn - 我可以 svn merge 而不总是指定第一个修订版吗?

svn - 显示svn中分支的更改日志

php - 在表单中传递多行输入并在 PHP 中迭代它们?

php - 安全提交主键

svn - Git 克隆连接超时

MySQL 用户 DB 没有密码列 - 在 OSX 上安装 MySQL