Просмотр полной версии : Обработка обращений к файлам
LowNoise
04.12.2002, 21:32
Приветствую. Вопрос хотел бы задать спецам по Апач-PHP
связке. Задачка вот какого рода:
есть каталог, куда PHP скрипт сбрасывает простые текстовые
файлы (часть работы новостного скрипта, работающего с MySQL). Нужно бы сделать, чтобы прямой доступ к этим файлам в обход PHP-скрипта вызывал запуск скрипта, а не выводил содержимое текстового файла в браузер пользователя (пришедшего, например, с поисковой системы). Заранее спасибо всем.
можно запретить доступ...... и в обработке 403 смотреть на REFERRER
Если требуется при обращении к текстовому файлу запустить вместо него скрипт, то нужно настроить mod_rewrite, а если просто закрыть доступ то это делается htaccess:
<Files ~ "*.txt">
Order allow,deny
Deny from all
</Files>
а можно простым редиректом обойтись, особенно если файлы и скрипт в одной дире
RedirectMatch mydir\/(.+\.txt) /myscript.ptp?file_requested=$1
Да если и в разных тоже, но незнаю почему, но mod_rewrite мне нравиться больше .
LowNoise
09.12.2002, 19:53
Еще вопрос (простите наивность) - знак вопроса при редиректе (RedirectMatch) переводится в urlencode, отчего возникает ссылка на мифический файл. Как этого можно избежать?
Если в эту часть вопрос - mydir\/(.+\.txt), то его надо с обратным слешем - \?, а если имена файлов русские, тогда в myscript.ptp надо urldecode. А лучше напиши всю cвою строку RedirectMatch и откуда и куда редирект хочешь сделать.
LowNoise
09.12.2002, 21:52
Вот весь .htaccess:
Options -Indexes
RedirectMatch permanent .+\/(.+\.txt) ../uptonews.phtml?f=$1
Знак вопроса пробовал еще раньше экранировать, слеш тоже переводился в %чего-то там. Правда, пробовал все это делать в Апачи под Win.
Лучше воспользуйся mod_rewrite:
RewriteEngine on
RewriteRule ^(.*)\.txt$ uptonews.phtml?f=$1
PS: Незабудь его включить .
LowNoise не пиши в .htaccess, лучше в конфиге сервера прописать
Как будто на localhost@win32 это чем-то различается ...
А скинь на мыло конфиг, глянем.
Какзалось бы при чём тут winda...
Если ты про "localhost@win32", то я имел ввиду, что на локальной машине обычно нет заморочек по безопасности и конфиг сервера не сильно отличается от default . Именно поэтому я был не согласен, что писать лучше в конфиге, нежели в htaccess .
По идее при каждом обращении к любому файлу в этой дире, сервен должен свериться с .htacess. Так же как нет смысла ему подключать mod_rewrite ради одного простого редиректа, который реализован в core. Для экономии ресурсов.
Да, должно быть будет сэкономлено много ресурсов, ну просто огромное количество ;)
Зато сразу будет оптимально, лучше чем совсем ничего, согласись :)
Пока что с redirect совсем ничего ...
vBulletin® v3.8.5, Copyright ©2000-2024, Jelsoft Enterprises Ltd.