我有一个.htaccess文件,它在我网站的每个页面上请求登录凭据。 .htaccess仅位于我的dev文件夹中。然而,每当我去我的网站(不是开发者)时,我仍然要求登录凭证。
我想要的是什么:要在我的dev子目录中只有.htaccess请求密码。例如,当我访问dev.mywebsite.com时,我将被要求提供登录凭据。
(.htaccess文件仅存在于/ www / live_website / dev中)
这是我的.htaccess的样子:
AuthUserFile /www/live_website/dev/.htpasswd
AuthType Basic
AuthName "Please login"
Require valid-user
UPDATE:解决
我通过编辑我的.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 :(得分:0)
我通过将子域名从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