Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
6 / 6 / 1
Регистрация: 10.06.2010
Сообщений: 69
1

Запретить открывать файл через .htaccess

23.09.2010, 06:56. Показов 4095. Ответов 1
Метки нет (Все метки)

Возможно запретить открывать файлы по адресу file/, но при этом чтобы можно было работать с ним через <img src='/file/picture.jpg'>?

Я использую
Bash
1
RewriteRule ^file/(.*)$ - [F]
, но тег IMG не видит файл, а мне надо чтобы видел. Как это сделать?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2010, 06:56
Ответы с готовыми решениями:

Как через .htaccess запретить доступ к сайту используя файл с ip?
есть файл с китайскими ip около 2000 например 58.14.0.0/15 58.16.0.0/16 58.17.0.0/17...

Перенаправление запросов через .htaccess на один файл
Господа форумчане! Прошу помочь в решении воароса: Можно-ли сделать любой запрос средствами...

Запретить открывать php страницу через браузеры
Ребят, можно ли как-то запретить открытие php страницы через браузер? Т.е. открывает кто-то...

Запретить доступ по запросу через htaccess
Добрый день. Последнее время появились &quot;нежелательные&quot; заходы на сайт через поисковики яндекс и...

1
694 / 534 / 40
Регистрация: 22.06.2009
Сообщений: 1,293
23.09.2010, 08:14 2
cyber-man, чтобы не возникало таких вопросов нужно понимать суть работы сервера и клиента. Как всегда постараюсь выделить основное и опустить с моей точки зрения не важное.

Как работает сайт? Рассмотрим на примере. Мы хотим посмотреть сайт cyberforum.ru в браузере. Набираем адрес сайта в браузерной строке и нажимиает enter.
Рассмотрим все что происходит дальше пошагово:

1. Клиент, то есть в данном случае браузер, например opera, firefox, IE или любой другой делает GET запрос по набранному адресу "cyberforum.ru". Что значит GET запрос? Это значит браузер говорит серверу давай файл расположенный вот там.

2. Сервер отдает html файл главной страницы сайта. Мы ведь запросили просто главную страницу. Никаких картинок, ни css, ни js ни каких либо других файлов сервер еще не отдавал.

3. Браузер получает html файл и начинает его анализировать. Разбирать на составляющие, а именно смотреть каждый тэг в отдельности с самого начала. Встретился браузеру тэг <link rel="stylesheet" type="text/css" href="https://www.cyberforum.ru/clientscript/vbulletin_important.css?v=384" />
Браузер понимает что vbulletin_important.css отдельный файл. Чтобы получить этот файл нужно сделать еще один GET запрос. Запомнили. Браузер продолжает анализировать. Встретился браузеру тэг <img src='/file/picture.jpg'>, ага опять отдельный файл на который понадобится еще один запрос к серверу. Таким образом анализируется весь html код до самого конца и выявляются все файлы на которые потребуются дополнительные запросы.

4. Браузер начинает запрашивать все файлы которые связаны с полученным html кодом. Все эти файлы мы выявили на предыдущем этапе.
Делается GET запрос к каждому из css файлов в отдельности — сервер отдает css файлы. По одному на запрос. Делается запрос к каждому из javascript файлов, сервер их отдает. Так же по одному файлу на запрос.
Теперь внимание твой случай:
Делается GET запрос к каждой картинке на сайте. К каждой картинке отдельный GET запрос.

Что делает твое правило RewriteRule ^file/(.*)$ - [F] ?
Оно запрещает отдавать файлы картинок из папки file. Сервер работает по протоколу http, ему без разницы кто посылает запрос по этому протоколу. Будет это браузер, телнет или любая другая программа. Сервер получает GET запрос — сервер отдает запрошенный файл. Этим правилом ты запрещаешь серверу отдавать файлы из папки "file" по GET запросу. То есть никто не сможет их получить. Ни одна программа. Apache выдаст ошибку 403 на любой такой запрос.

-----------------------
То есть ответ на вопрос:
Цитата Сообщение от cyber-man Посмотреть сообщение
Возможно запретить открывать файлы по адресу file/, но при этом чтобы можно было работать с ним через <img src='/file/picture.jpg'>?
Нет, это невозможно. Либо никто не получает эти файлы, либо все получают эти файлы. Можно ввести ограничения на отдельные браузеры, на отдельные ip, но узнать независимо этот файл запрашивается или для вставки в html страницу ты не сможешь.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2010, 08:14

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как открывать pdf файл через html?
У меня есть ссылка на pdf file в гугл диск, &lt;a class=&quot;nav-item&quot;...

Заполнить DataGridView массивом из файла. Файл открывать через OpenFileDialog
Добрый вечер! Очень нужна помощь! Надо заполнить DataGridView массивом из файла. Файл открывать...

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

Как сохранить консольное приложение, что бы открывать его через файл
Как сохранить консольное приложение, что бы открывать его через файл, а не через Visual Studio&amp;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.