2

ユーザーがログインする前に、ディレクトリを非表示にする (代わりに 404 を指定する) 方法を探しています。

たとえば、ディレクトリ/adminとディレクトリがあります/login

そして、最初のアドレスにアクセスしたユーザーに 404 ページが表示されるようにします。

しかし、最初に 2 ページ目に移動すると、基本的な認証ダイアログが表示され、正しいログイン データを入力すると、最初のディレクトリにリダイレクトされ、実際の管理パネルが表示されます。

これを行う方法を教えてください。さまざまな組み合わせ(シンボリックリンクを含む)を試しましたが、取得できる/adminのは、パスワードで保護されている場合はアクセス可能なディレクトリだけです(そうでない場合は、RewriteRuleまたはRedirectMatchに関係なく、404に正しくリダイレ​​クトされます)。

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 が管理ディレクトリに存在する間は機能しません (存在しない場合は保護されなくなります)。

4

0 に答える 0