Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Htaccess, как запретить доступ ко всем кроме нескольких файлов (https://javascript.ru/forum/server/61362-htaccess-kak-zapretit-dostup-ko-vsem-krome-neskolkikh-fajjlov.html)

eddin 15.02.2016 10:43

Htaccess, как запретить доступ ко всем кроме нескольких файлов
 
Добрый день. Как в htaccess запретить доступ ко всем файлам и папкам в каталоге кроме нескольких файлов.
Ну вот например, есть каталог /admin/. В каталоге куча файлов и папок с разными разрешениями. Как разрешить доступ только к файлам /admin/file1.php, /admin/file5.php, /admin/file7.html, /admin/tpl/file1.tpl, /admin/kartinka1.jpg, а ко всем остальным запретить, например /admin/file2.php, /admin/file3.php, /admin/foto.png, /admin/tpl/file3.tpl и так далее (всего порядка 500 файлов и папок).

laimas 15.02.2016 11:50

Если каталог admin, это каталог административного раздела и вход в него из этой папки, то довольно странно иметь в корне этого каталога файлы типов .tpl, .jpg. К тому же, если административный раздел имеет клиентские сценарии, файлы стилей (там место и картинкам) расположенные в этом каталоге (в отдельных папках должны быть и шаблоны, это подключаемый на все 100% файл и он может находиться в закрытом каталоге), то закрыть "все остальные" просто невозможно.

Может все такие навести порядок, не иметь в корне каталога кучу файлов а только несколько логически оправданных, а все остальное подключаемое и как раз с закрытых для прямого доступа?

eddin 15.02.2016 14:14

Цитата:

Сообщение от laimas (Сообщение 407841)
Может все такие навести порядок, не иметь в корне каталога кучу файлов а только несколько логически оправданных, а все остальное подключаемое и как раз с закрытых для прямого доступа?

Файлы, как и папка, были приведены просто для примера.

laimas 15.02.2016 14:24

Значит пример неудачный. Ибо, к примеру:

Код:

amin/
  index.php
  .htaccess - здесь только общие правила
  css/ - прямой доступ
      img/
        *.ext
      *.css
  js/ - прямой доступ
      *.js
  include/
      .htaccess - этот закрывает все файлы и подкатегории соответсвенно
      *.php, *.* - то есть все что подключаемое или для доступа только владельцу
  tpl/
      .htaccess - закрыт промой доступ
      *.tpl
  .... и т.д.


eddin 15.02.2016 14:57

Цитата:

Сообщение от laimas (Сообщение 407863)
Значит пример неудачный. Ибо, к примеру:

Да какая разница, сказал же что просто для примера. Ну если вам так легче будет, то считайте вместо /admin/ пусть будет /somedirectory/

laimas 15.02.2016 15:37

Я вообще ничего не должен считать, и дело не в имени категории, а файловой ее организации, которая и представлена. Из корня ее ничего не закрывают, ибо надо полагать этот каталог есть вход в админку. Закрывать нужно папки этой категории, которые надо закрыть, своими .htaccess, а их действие автоматически будет распространяется на все файлы и вложенных в них папок. Это понятно?

eddin 15.02.2016 16:17

Цитата:

Сообщение от laimas (Сообщение 407883)
Это понятно?

Я попросил помощи исходя из описанной мной ситуации в первом посте. Я не просил советов по другим вопросам.

ПОВТОРЯЮ ЕЩЕ РАЗ!!! Нет у меня никакой папки admin. Названия папок и файлов примера взяты полностью "от балды", тк это никак не влияет на решение необходимой задачи из первого поста

laimas 15.02.2016 16:40

От балды, ну так от балды и ответ может быть, или устроит? Действие директив ведь распространяется на все, что в каталоге. От вас кроме гонора нихрена - хочу, выложите! Или лень отвечать на вопросы?

От балды, пробуйте.

#закрываем доступ на все файлы
<Files *>
Order Deny,Allow
Deny from All
</Files>
#разрешаем доступ определенных
<Files "name.ext,name.ext,...">
Order Deny,Allow
Allow from All
</Files>

eddin 18.02.2016 19:32

Цитата:

Сообщение от laimas (Сообщение 407896)
От балды, пробуйте.

Ну да, мне этот вариант и предложили на другом форуме. Есть маленькие нюансы в синтаксисе, но в целом именно это.


Часовой пояс GMT +3, время: 20:30.