。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
答
我解决了这个改变从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
它应该已经像你的意图那样工作了。你必须有另外一个'必须有效用户'影响'/ www/live_website /'。或者,您需要从现场直播中找到'dev'网站上的资源。 – Capsule
Hello Capsule,谢谢你的迅速回复。你是对的,它显示我的开发网站正在使用的一些资源来自现场。我通过将子域dev.mywebsite.com重定向到mywebsite.com/dev/解决了这个问题,之后我有.htaccess请求密码。我将在我的问题中上传我的新.htaccess文件。再次感谢你! –