mav Posted October 1, 2005 Posted October 1, 2005 Есть web сервер с Apache. Необходимо сделать следующее, когда пользователь запрашивает какую либо страницу, apache должен сначала обработать определенный скрипт, и в зависиости от результата выдать требуюмую страницу, либо другую. Как это можно сделать? Вставить ник Quote
mav Posted October 1, 2005 Author Posted October 1, 2005 mod_rewrite можно пример? в поиске ничего толком не нашел Вставить ник Quote
mav Posted October 1, 2005 Author Posted October 1, 2005 Пробовал реализовать с помошью Action и Handler В httpd.conf добавил Action My_Preprocessor "http://site/cgi-bin/script.pl?" AddHandler My_Preprocessor .html .php script.pl перекидывает на страницу, которая указана после "?" Получается круговорот) apache перекидывает на script.pl, script.pl обрабатывает и перекидывает на страницу, но апачь перекидывает на скрипт) Вставить ник Quote
ToSHiC Posted October 2, 2005 Posted October 2, 2005 например RewriteEngine On RewriteRule ^dir/ /my_handler.php Вставить ник Quote
mav Posted October 2, 2005 Author Posted October 2, 2005 например RewriteEngine On RewriteRule ^dir/ /my_handler.php и что должно быть в /dir? my_handler.php - это тот скрипт, который проверять должен? что дальше с запросом он будет делать? Вставить ник Quote
Shiva Posted October 2, 2005 Posted October 2, 2005 http://httpd.apache.org/docs/1.3/misc/rewr...writeguide.html Вставить ник Quote
mav Posted October 2, 2005 Author Posted October 2, 2005 http://httpd.apache.org/docs/1.3/misc/rewriteguide.html ну так это тоже самое, что и я описал, не так разве? то в тело самого скрипта надо деать инклюд той страницы которую запрашивают, так не подходит. Вставить ник Quote
Shiva Posted October 2, 2005 Posted October 2, 2005 mav, тогда можно попробовать зделать так. 1. перехват любой страницы кроме чего-нибудь, например /no/url, по которому идёт перенаправление на url после обработки скриптом, если требуется получить данные, тогда переадресовывать на /no/url. 2. зарегистрировать PHP для нужных типов, поставить в PHP.ini приереплять скрипт который и будет обрабатывать и если содержимое не нужно, тогда делаь тупой выхов функции exit(). Вставить ник Quote
ToSHiC Posted October 2, 2005 Posted October 2, 2005 закидываешь в корень, например, .htaccess в него пишешь RewriteEngine On RewriteRule ^dir/ /my_handler.php после этого любой запрос типа http://my.super.server/dir/tryetr/tert/ert будет обрабатывается скриптом my_handler.php в скрипте соответственно надо проверять урл и, сиходя из него, делать что надо. Вставить ник Quote
mav Posted October 2, 2005 Author Posted October 2, 2005 закидываешь в корень, например, .htaccessв него пишешь RewriteEngine On RewriteRule ^dir/ /my_handler.php после этого любой запрос типа http://my.super.server/dir/tryetr/tert/ert будет обрабатывается скриптом my_handler.php в скрипте соответственно надо проверять урл и, сиходя из него, делать что надо. ну вот скрипт отработал, все ок доступ дать можно, пересылает на страницу http://my.super.server/dir/tryetr/tert/ert, а апач снова перекидывает на скрипт, и так постояно) Вставить ник Quote
mav Posted October 2, 2005 Author Posted October 2, 2005 mav, тогда можно попробовать зделать так.1. перехват любой страницы кроме чего-нибудь, например /no/url, по которому идёт перенаправление на url после обработки скриптом, если требуется получить данные, тогда переадресовывать на /no/url. что юзеру будет мешать, набрать /no/url, обходя скрипт? Вставить ник Quote
ToSHiC Posted October 3, 2005 Posted October 3, 2005 mav, да не перекидывает апач никого никуда. скрипт отработал - сессия закрылась. всё происходит так, как будто этот скрипт находится по адресу http://my.super.server/dir/tryetr/tert/ert Вставить ник Quote
Khimik Posted October 4, 2005 Posted October 4, 2005 Есть web сервер с Apache. Необходимо сделать следующее, когда пользователь запрашивает какую либо страницу, apache должен сначала обработать определенный скрипт, и в зависиости от результата выдать требуюмую страницу, либо другую. Как это можно сделать? Можно сделать обработчик на 404 ошибку, который будет выполнять нужные действия. А DocumentRoot пустой оставить. Параметры запуска брать - REQUEST_URI парсить. Вставить ник Quote
Shiva Posted October 4, 2005 Posted October 4, 2005 mav, что юзеру будет мешать, набрать /no/url, обходя скрипт? Надро знать /no/, никто же не мешает его хзделать такого вида: /sasasJHIQUEfhiaaoiuedfh2089dsa7sir23o1boqsdbasjkodh23rdioasdha/ Вставить ник Quote
ToSHiC Posted October 5, 2005 Posted October 5, 2005 так его можно через .htaccess прикрыть, и всё Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.