如何在 htaccess HTTP 身份验证失败时停止处理



我正在尝试在具有RewriteCondRewriteRule的网站根目录(public_html)中使用HTTP身份验证。当我访问网站时,它会给我提示,但是当我取消时,它会再次提示我几次。最后,它停止提示并给我带有链接资源的主页 HTML,即图像、JS、CSS 等不可用。

我有一种感觉,HTTP 身份验证失败没有导致 htaccess 脚本进一步停止处理,因此重写规则仍然生成内容。如何告诉 htaccess "如果身份验证失败,则停止进一步处理"?

# manually added
Options +FollowSymLinks
RewriteEngine on
# Added by cpanel password protect directory
AuthUserFile "/home/username/.htpasswds/public_html/passwd"
AuthType Basic
AuthName "Stage"
require valid-user
# Manually added
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

我认为您需要在重写时进行额外的RewriteCond,以便仅在您拥有有效用户时才继续。例如:

RewriteCond %{LA-U:REMOTE_USER} !^$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

最新更新