在.htaccess中结合基本身份验证和重定向?

时间:2014-01-19 13:49:01

标签: .htaccess mod-rewrite basic-authentication

以下情况:

  • 如果访问我的apache上的www.mydomain.tld / SubFolder1 / www.mydomain.tld
  • ,我希望重定向所有IP地址(但不是两个固定地址)
  • 关闭www.mydomain.tld / SubFolder1 /具有不同用户名的基本身份验证

任何想法怎么做?

我尝试使用一个htaccess文件,其中添加了一些重定向规则和基本的auth内容。但我从来没有让重定向规则正常工作。缝合auth的东西会覆盖重定向规则。可能是吗?

我使用以下代码进行身份验证

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

1 个答案:

答案 0 :(得分:2)

您可以在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_authmod_rewrite之前运行,因此mod_rewrite设置的env无法使用mod_auth