。htaccess认证只有一个子目录

问题描述:

我有一个.htaccess文件,在我的网站的每个页面上请求登录凭据。 .htaccess仅位于我的dev文件夹中。然而每当我去我的生活网站(不是开发)我仍然要求登录凭据。。htaccess认证只有一个子目录

我想要的是:只在我的dev子目录中有.htaccess请求密码。因此,例如,当我去dev.mywebsite.com时,我将被要求提供登录凭据。

  • 这是我的直播网站/ WWW我的文件路径/ live_website
  • 这是我开发的网站我的文件路径/ WWW/live_website的/ dev

(.htaccess文件只存在在/ WWW/live_website的/ dev)

这里是我的.htaccess是什么样子:

AuthUserFile /www/live_website/dev/.htpasswd 
AuthType Basic 
AuthName "Please login" 
Require valid-user 

更新:已解决

我通过编辑我的.htaccess来解决这个问题。有关完整的探索,请参阅我对下面的Capsule的回复或我的回答。

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^dev.mywebsite.com 
RewriteRule ^(.*)$ http://mywebsite.com/dev/$1 [L,NC,QSA] 

SetEnvIf Request_URI ^/dev require_auth=true 

# show Basic auth dialogue only when SHOW_AUTH is set 
AuthType Basic 
AuthUserFile /www/live_website/dev/.htpasswd 
AuthName “Please login“ 

# Setup a deny/allow 
Order Deny,Allow 

# Deny from everyone 
Deny from all 

# except if either of these are satisfied 
Satisfy any 

# 1. a valid authenticated user 
Require valid-user 

# or 2. the "require_auth" var is NOT set 
Allow from env=!require_auth 
+0

它应该已经像你的意图那样工作了。你必须有另外一个'必须有效用户'影响'/ www/live_website /'。或者,您需要从现场直播中找到'dev'网站上的资源。 – Capsule

+0

Hello Capsule,谢谢你的迅速回复。你是对的,它显示我的开发网站正在使用的一些资源来自现场。我通过将子域dev.mywebsite.com重定向到mywebsite.com/dev/解决了这个问题,之后我有.htaccess请求密码。我将在我的问题中上传我的新.htaccess文件。再次感谢你! –

我解决了这个改变从dev.mywebsite.com子域名重定向到mywebsite.com/dev,然后有在重定向的.htaccess请求登录凭据。

下面我的dev文件夹中的新的.htaccess文件。

RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^dev.mywebsite.com 
    RewriteRule ^(.*)$ http://mywebsite.com/dev/$1 [L,NC,QSA] 

    SetEnvIf Request_URI ^/dev require_auth=true 

    # show Basic auth dialogue only when SHOW_AUTH is set 
    AuthType Basic 
    AuthUserFile /www/live_website/dev/.htpasswd 
    AuthName “Please login“ 

    # Setup a deny/allow 
    Order Deny,Allow 

    # Deny from everyone 
    Deny from all 

    # except if either of these are satisfied 
    Satisfy any 

    # 1. a valid authenticated user 
    Require valid-user 

    # or 2. the "require_auth" var is NOT set 
    Allow from env=!require_auth