我正在寻找一种方法可以在用户登录之前隐藏目录(给出404代替它)。
例如,我有目录/admin
和目录/login
我希望第一个地址的用户会看到404页面。
但是,如果他在第二页首先出现,他会看到基本的身份验证对话框,如果他输入正确的登录数据 - 他将被重定向到第一个目录并查看实际的管理面板。
如何做到这一点,你能告诉我吗?我尝试了各种组合(包括符号链接),但我得到的只有/admin
目录,如果它受密码保护(如果没有 - 它正确地重定向到404,无论是使用RewriteRule还是RedirectMatch)。
RedirectMatch 404 ^/admin(/?|/.*)$
RewriteRule .* - [E=AUTH:%{HTTP:Authorization}]
<Files login>
AuthUserFile /www/.passwd
AuthName PROXY
AuthType Basic
Require valid-user
</Files>
RewriteCond %{AUTH} !=""
RewriteRule .* login
不工作(连续获得404)。
RedirectMatch 404 ^/admin(/?|/.*)$
RewriteRule ^login/(.*) admin/$1
RewriteCond %{THE_REQUEST} ^GET\ /admin/
RewriteRule ^admin/(.*) /login/$1 [L]
在管理目录中存在.htaccess时不起作用(否则它变得不受保护)。