2017-07-26 17 views
1

我想爲我的應用程序配置通用.htaccess文件以保護我的測試服務器。我想爲任何來自公共IP的請求顯示基本身份驗證,只有在當前服務器正在測試的情況下。Apache2 - 僅在公共IP上顯示auth,僅在測試服務器上

如何實現這個?我知道如何保護域,並排除一些IP:

AuthType Basic 
AuthName "Please Log In" 
AuthUserFile /some/path/.htpasswd 
Require valid-user 
Order deny,allow 
Deny from all 
Allow from 127.0.0.1 
Satisfy any 

但我怎麼才能讓這個代碼的運行只有當服務器是開發/測試?我無法更改env變量。我想過檢測域(我想保護的服務器在子域上),並將代碼放在某種if塊中,但我不知道如何。

+0

如果這些是2臺不同的主機和保持這個代碼只用於開發/測試 – anubhava

+0

@anubhava htaccess文件是在Git倉庫中,我使用它來部署到prod和測試服務器 – aso

回答

1

您使用基於mod_setenvif當前主機上設置一個環境變量,並用它auth後:

SetEnvIfNoCase Host ^sub\.domain\.com$ SECURED 

AuthType Basic 
AuthName "Please Log In" 
AuthUserFile /some/path/.htpasswd 
Require valid-user 
Order Allow,Deny 
Allow from 127.0.0.1 
Deny from env=SECURED 
Satisfy any 
相關問題