Я не могу заставить работать блокировку файлов. Если я использую следующий оператор в .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 и включенных каталогах, и сейчас он везде включен. Я перезапустил службу apache2 после внесения изменений в конфигурацию.
Кто-нибудь может увидеть, что я сделал не так?
Вы можете использовать блокирующую систему на основе 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 .
Вы также можете использовать мод-перезапись:
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]