.htaccess mod-rewrite与子文件夹auth冲突

iro*_*ith 4 authentication .htaccess mod-rewrite

我有一个站点,使用.htaccess将所有不存在的文件/文件夹请求重定向到索引文件:

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L]
RewriteRule !admin/* index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)

有一个文件夹"admin /",其中包含以下.htaccess for auth:

AuthType Basic
AuthName "admin"
AuthUserFile "/path/to/passwd"
require valid-user
Run Code Online (Sandbox Code Playgroud)

在"admin /"中添加auth .htaccess文件会导致请求被mod-rewrite捕获,而不是提供身份验证响应.我尝试了一些不同的东西试图解决这个问题(包括:htaccess重写和auth冲突),但无法获得任何购买.

谢谢.

编辑:如果我已经过身份验证,重写规则可以让我访问"admin /"文件夹.因此,似乎是认证挑战正在做一些不可思议的事情.

Sor*_*Cat 5

我有同样的问题,我也发现了这个相关的问题:htaccess重写和auth冲突

其中一个答案让我想到了我的问题.Apache试图找到401错误的文档并失败.我添加了一个文档/401.html并将其添加到带有Auth语句的.htaccess文件中.

ErrorDocument 401 /401.html

现在,它适合我!