使用.htaccess和.htpasswd保护子目录

时间:2014-05-01 11:20:48

标签: .htaccess .htpasswd

我有一个目录memories,其中有一个子目录/memories/application/controllers/admin 我想使用admin.htaccess来保护.htpasswd目录。

这是我的.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    AuthUserFile /var/www/memories/application/controllers/admin/.htpasswd
    AuthType Basic
    AuthName "memories with mom"
    Require admin
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

# Various security things
ServerSignature off
php_value expose_php Off
php_value  session.cookie_httponly On
Options -Indexes
ErrorDocument 403 /404.php

但它保护整个父目录,而我只希望保护子目录admin。我的.htpasswd也在管理员文件夹中。

1 个答案:

答案 0 :(得分:0)

如果您只希望子目录admin受.htpasswd文件保护,则只将特定于auth的htaccess代码放在该子目录中,而不是整个站点的.htaccess

/var/www/memories/application/controllers/admin/.htaccess应该只是

AuthUserFile /var/www/memories/application/controllers/admin/.htpasswd
AuthType Basic
AuthName "memories with mom"
Require admin

并从主.htaccess中删除上述代码