2014-01-19 41 views
1

以下情況:在.htaccess中結合基本身份驗證和重定向?

  • 我希望重定向所有的IP不會忽略(但不是兩個固定的),如果訪問www.mydomain.tld/SubFolder1 /我的阿帕奇www.mydomain.tld
  • 見於Ger.Offen基本認證爲www.mydomain.tld/SubFolder1 /用戶名不同

任何想法如何做到這一點?

我試圖使用一個htaccess文件,其中我添加了一些重定向規則和基本身份驗證的東西。但我從來沒有得到重定向規則正確工作。縫合auth的東西是覆蓋重定向規則。那可能嗎?

我用下面的代碼進行驗證

AuthName "Restricted" 
AuthType Basic 
AuthUserFile //is/htdocs/www/subfolder1/.htpasswd 
AuthGroupFile /dev/null 
require valid-user 
+0

顯示您使用BASIC身份驗證的當前代碼。 – anubhava

+0

添加了我使用的Basic的代碼部分。 – BastianW

+0

在重定向之前,應該向所有用戶顯示「基本認證」嗎? (包括那兩個IP)? – anubhava

回答

1

您可以在DOCUMENT_ROOT/SubFolder1/.htaccess文件中使用此代碼:需要

RewriteEngine On 

RewriteCond %{REMOTE_ADDR} !^(192\.168\.0\.10|192\.168\.0\.20)$ 
RewriteRule ^$ http://www.mydomain.tld/ [L,R] 

SetEnvIf Remote_Addr ^(192\.168\.0\.10|192\.168\.0\.20)$ DOAUTH 

AuthName "Restricted" 
AuthType Basic 
AuthUserFile //is/htdocs/www/subfolder1/.htpasswd 
AuthGroupFile /dev/null 
require valid-user 
Satisfy  any 
Order  allow,deny 
Allow from all 
Deny from env=DOAUTH 

SetEnvIf因爲mod_auth運行之前不能mod_rewrite因此ENV由mod_rewrite設置使用mod_auth

+1

太好了,謝謝...順便說一下,是否可以使用多於一個SetEnvIf行,例如,如果我想添加兩個額外的IP地址?這將是方便的,如果我需要在這裏添加我的家庭動態撥號IP範圍。使用管道,我可能會以很長的字符串結束 – BastianW

+0

哦,是的,你確定你可以有任意多的'SetEnvIf'行。 – anubhava