Добрый день, уважаемые!
Есть следующая проблема:
Есть каталог "/dir" в котором лежат .html файлы и есть поисковый сервер, который должен эти файлы индексировать. Возможность "видеть" эти файлы обеспечивает апачевский
Options +Indexes.
Задача ограничить "Options +Indexes" так, чтоб автоиндекс показывался только нужному IP-адресу или user-agent, а для остальных чтоб возвращалась 403 ошибка, так как index-файла в каталоге нет. Но в то же время доступ к файлам в каталоге по ссылке вроде "/dir/somefile.html" оставался работать.
Вобщем как сделать так, чтоб для одних IP-адресов клиентов autoindex работал, а для других - нет?
Спасибо, разобрался сам.
1. Делаем симлинк исходной директории в другое имя:
ln -s dir otherdir
2. В конфиге апача описываем обе эти директории, при чем исходную с indexes, но доступом только с нужного адреса
<Directory "/path/to/site/dir">
AllowOverride none
Options +Indexes
Order deny,allow
Deny From All
Allow from 10.0.0.1
</Directory>
А производную без indexes (-Indexes), но с доступом отовсюду:
<Directory "/path/to/site/otherdir">
AllowOverride none
Options -Indexes
Order allow,deny
Allow from All
</Directory>
3. Пишем реврайт в .htaccess:
RewriteCond %{REMOTE_HOST} !10.0.0.1
RewriteRule ^/dir/(.*\.html) /otherdir/$1 [L]Таким образом левый клиент заходя по ссылке, отдаваемой индексатором: http://site.com/dir/filename.html будет прозрачно переадресован в каталог otherdir, куда ему доступ разрешен, но не разрешен autoindex.