
Я хотел бы разрешить просмотр каталогов для пользователей, вошедших в систему через HTTP Basic-аутентификацию, но запретить его для анонимных пользователей. Есть ли способ сделать это с помощью .htaccess?
решение1
RewriteEngine on
RewriteCond %{REMOTE_USER} =""
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule .? - [F,L]
Вам нужно будет объединить в цепочку столько index.foo
типов, сколько вы используете.
Это предполагает, что под «вошедшим в систему пользователем» вы подразумеваете кого-то, вошедшего в систему с использованием аутентификации HTTP BASIC. Если вы подразумеваете кого-то, вошедшего в систему с помощью пользовательского механизма аутентификации, вам нужно будет подключить к этому карту перезаписи, что, вероятно, не стоит усилий; в этом случае я бы поместил index.foo
во все свои каталоги, которые проверяли бы мою пользовательскую аутентификацию и отправляли индекс или нет, в зависимости от того.
решение2
http://httpd.apache.org/docs/2.0/howto/htaccess.html
Объясняет, как именно это сделать. Параметр Require — это то, на что вам нужно обратить внимание.