我正在寻找一种方法可以在用户登录之前隐藏目录(给出 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 时无法正常工作(否则它会不受保护)。