这是我的情况。我正在 PHP Fog 上设置开发服务器和生产服务器。我的本地机器上有一组文件,我希望能够处理这些文件并将其推送到 PHP Fog 上的两台服务器中的每台。
不过,我希望使用传统的 htpasswd/htaccess 方法保护我的开发服务器。这意味着生产服务器需要忽略我的工作副本中的这两个文件。
有没有办法告诉生产服务器在提交时忽略这两个文件,但在推送到开发服务器时让它们通过?
不久前我也在研究这个问题,我使用了这篇文章,它应该解释如何将单个 htaccess 用于多个站点,而不是担心 git。
博客文章:Mark Alan Evans撰写的“用于开发和生产服务器的 git 存储库中的单个.htaccess
文件”
他是这样描述问题的:
问题:
你想拥有
dev.yoursite.com
,www.yoursite.com
但又不想让dev.yoursite.com
公众看到。解决方案:
如果您使用 apache(我们中的许多人都是这样),那就
.htaccess
来.htpasswd
救援。
在您的.htaccess
文件中添加:
SetEnvIf Host yourstagingserver.com passreq
AuthType Basic
AuthName “Staging Server”
AuthUserFile /path/to/.htpasswd
Require valid-user
Order allow,deny
Allow from all
Deny from env=passreq
Satisfy any
在开发和生产中配置您的密码文件
无论您在何处指定
/path/to/.htpasswd
文件,从控制台导航到该文件夹并键入“<code>htpasswd -c .htpasswd mark”,其中 mark 是您要为其创建登录的第一个用户。
对于每个其他人,键入“<code>htpasswd .htpasswd linda”,其中linda
是您要添加到.htpasswd
文件中的下一个用户名。
每次它都会提示您输入两次密码(您的密码将存储在.htpasswd
文件中),并在您创建的用户名旁边加密。笔记:
AuthUserFile
需要一个绝对路径,但如果您不以正斜杠开头路径,则默认为您在httpd.conf
文件中指定为ServerRoot
.