受密码保护的子文件夹提示密码两次,然后抛出404错误



我的问题:

我的网站包括根文件夹中的一些文件,以及在我的htaccess中设置的受密码保护的子文件夹。当我尝试访问子文件夹时,它会提示我输入密码,这是应该的。然而,它会提示我输入两次密码,在输入两次正确的密码后,它会抛出404错误。如果我输入了错误的密码,它会不断询问密码。

输入密码后,我实际上已经登录了,因为如果我试图访问该子文件夹的特定部分(即myurl.com/subfolder/index.php(,我可以访问它。但显然,该网站不应该首先抛出404错误。

我尝试过的:

我看到其他人也有类似的问题,关于受密码保护的子文件夹和404错误。然而,我的问题略有不同,因为我实际上需要输入密码。因此,添加ErrorDocument 401 "Authorisation Required"的通用解决方案并没有解决这个问题。

代码:

这是根文件夹的htaccess:

#Redirects to the https version of site
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
## Removes php extensions 
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
#Allow password for subfolder
ErrorDocument 401 "Authorisation Required"

这是子文件夹的htaccess:

#Password for subfolder
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile myurl/mysubfolder/.htpasswd
Require valid-user

非常感谢您的帮助

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]

如果您请求/subfolder目录(并且一旦您通过身份验证(,上述mod_rewrite指令(在根.htaccess文件中(将附加一个.php扩展名,即/subfolder/.php,并导致404。

(不确定为什么会两次提示您输入密码,除非这也与上述重写有关,或者可能与404的触发方式有关-您是否定义了自定义404文档?您是否有任何其他.htaccess指令?(

您需要:

  • 在上述规则中包含一个附加条件以排除目录。例如:

    RewriteCond %{REQUEST_FILENAME} !-d
    
  • 或者,在/subfolder/.htaccess文件中,禁用重写引擎,这样就不会处理父.htaccess文件中的mod_rewrite指令。尽管这可能不可取。

    RewriteEngine Off
    

相关内容

  • 没有找到相关文章

最新更新