仅针对一个子目录的 .htaccess 身份验证



我有一个.htaccess文件,该文件在我的网站的每个页面上请求登录凭据。.htaccess仅位于我的开发文件夹中。但是,每当我访问我的实时网站(不是开发(时,我仍然要求输入登录凭据。

我想要什么:在我的开发子目录中只有 .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 请求登录凭据。

下面的开发文件夹中的新 .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

相关内容

最新更新