Заказать разрешить, запретить блокировать весь сайт

Я не могу заставить работать блокировку файлов. Если я использую следующий оператор в.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]
Другие вопросы по тегам