2012-02-13 3 views
2

Попытка заблокировать доступ к каталогам от всех, за исключением 1 IP-адреса. Этот код .htaccess блокирует доступ, но он блокирует доступ ко всему, включая изображения, css и т. Д. Что мне нужно изменить?Ограничить/заблокировать каталог на основе IP-адреса

RewriteCond %{REMOTE_ADDR} !^XX\.XXX\.XX\.XXX$
RewriteRule ^hidedirectory(.*)$ http://site.com/ [R,L]

Любой доступ к mysite.com/hidedirectory кроме меня должен перенаправлять mysite.com. Есть ли лучший, более безопасный способ сделать это, включая что-то вроде кода ответа HTTP?

+0

Почему отрицательный голос? – csi

ответ

2

Лучший способ это сделать это в вашем файле .conf:

<Directory /hidedirectory> 
options -Indexes 
Order Deny,Allow 
Deny from all 
Allow from XX.XXX.XX.XXX 
</Directory> 

Это будет отрицать everythig как ваши правила перезаписи. Но так как вы хотите, чтобы разрешить доступ к изображениям/CSS и т.д ...

RewriteCond %{REMOTE_ADDR} !^XX\.XXX\.XX\.XXX$ 
RewriteCond %{REQUEST_URI} !\.(?:jpe?g|png|gif|css)$ [NC] 
RewriteRule ^hidedirectory(.*)$ http://site.com/ [R,L] 

Добавить другие расширения Into (?:jpe?g|png|gif|css) суффиксом в | (или).

Смежные вопросы