Заказать разрешить, запретить блокировать весь сайт
Я не могу заставить работать блокировку файлов. Если я использую следующий оператор в.htaccess, он блокирует весь мой сайт:
order allow,deny
<Files ~ ".*\.(js|JS|css|CSS|jpg|JPG|gif|GIF|png|PNG|mp4|MP4)$">
allow from all
</Files>
Я использую Apache 2.2.22 (Debian)
Если я закомментирую вышеприведенные строки, я снова смогу зайти на свой сайт. В случае, если неясно, я пытаюсь заблокировать загрузку всех файлов из моего, кроме разрешенных типов файлов.
Здесь и на других сайтах есть множество постов на эту общую тему, но я занимаюсь этим уже 2 или 3 часа и не могу решить эту проблему. Извините, если это кажется очевидным.
Примечание: AllowOverrides определенно включен. Я нашел AllowOverrides во всех каталогах conf и включенных каталогах, и он включен везде. Я перезапустил службу apache 2, когда были внесены изменения в conf.
Кто-нибудь может увидеть, что я сделал не так?
1 ответ
Вы можете использовать систему блокировки на основе env, чтобы разрешить и запретить доступ к вашему сайту:
SetEnvIfNoCase request_uri (js|css|jpg|gif|png|mp4|php|html)$ allowedfiles=1
Order deny,allow
Deny from all
Allow from env=allowedfiles
SetEnvIfNocase нечувствителен к регистру, он соответствует как PNG, так и PNG.
Вы также можете использовать mod-rewrite:
RewriteEngine on
##If the request uri doesnt end with these extensions##
RewriteCond %{REQUEST_URI} !(js|css|jpg|gif|png|mp4|php|html)$ [NC]
##forbid the request##
RewriteRule ^ - [F,L]