3

这是我的情况。我正在 PHP Fog 上设置开发服务器和生产服务器。我的本地机器上有一组文件,我希望能够处理这些文件并将其推送到 PHP Fog 上的两台服务器中的每台。

不过,我希望使用传统的 htpasswd/htaccess 方法保护我的开发服务器。这意味着生产服务器需要忽略我的工作副本中的这两个文件。

有没有办法告诉生产服务器在提交时忽略这两个文件,但在推送到开发服务器时让它们通过?

4

1 回答 1

2

不久前我也在研究这个问题,我使用了这篇文章,它应该解释如何将单个 htaccess 用于多个站点,而不是担心 git。

博客文章:Mark Alan Evans撰写的“用于开发和生产服务器的 git 存储库中的单个.htaccess文件”

他是这样描述问题的:

问题:

你想拥有dev.yoursite.comwww.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.

于 2012-05-18T15:28:14.960 回答