Forum Webscript.Ru
Программирование => Perl => Тема начата: Alex-01 от 11 Апреля 2002, 17:21:18
-
Хотелось бы спросить про службы редиректа.
Неужели в службах редиректа, где тысячи пользователей,
создаются тысячи папок и DNS для доменов третьего уровня?
Вот есть такая служба http://www.inkazan.ru
Делает редирект (переадресацию) с адресов доменов
третьего уровня, например, http://www.reklama.inkazan.ru
Наверняка используются скрипты.
Как сделать подобную штуку на Perl ?
Как передается управление скрипту, и как он получает
адрес, набранный в браузере для последующей переадресации?
-
ИМХО здесь создание виртуальных хостов (вот здесь и может работать скрипт). А скрипт нужен только для редактирования htaccess.conf.
-
К сожалению, я не понимаю, как передать скрипту данные адресной строки браузера для редиректа.
-
Гдето так...
#!/usr/bin/perl
$temp=$ENV{\'QUERY_STRING\'};
if ($temp ne \'\') {
@pairs=split(/&/,$temp);
foreach $item(@pairs) {
($key,$content)=split (/=/,$item,2);
$data{$key}=$content;
}
}
if ($data{\'name\'} ne \'\') {
$name=$data{\'name\'};
print "Location:$name\\n\\n";
}else{
print "Content-type:text/html\\n\\n";
print "Запрос не верен!";
}
Переход из cgi-bin/redirect.pl?name=www.narod.ru будет осуществляться на народ ру.
-
Делаешь в настройках апача, чтобы все адреса типа third_domain.your_server.ru перенаправлялись на your_server.ru/redirect.php а в скрипте вытаскиваешь хост, из хоста вытаскиваешь имя домена и по домену определяешь куда перенаправить юзера (нужна БД в которой будут имена доменов и URL-ы куда редиректить).
ЗЫ
Я такое на php писал, с теорией могу помочь а с perl-ом нет :(
-
(нужна БД в которой будут имена доменов и URL-ы куда редиректить).
БД здесь вовсе не нужна... Зачем усложнять?
-
БД здесь вовсе не нужна... Зачем усложнять?
Не скажи - если редиректов будет много, то выборка из базы будет быстрее, чем скажем поиск по текстовому файлу.
P.S.:
Надо будет проверить с какого количества строк база данных с индексом становиться эффективнее чем текстовый файл.
-
могу сразу предупредить что база будет быстро разрастаться.
(я такой скрипт для ozz.ru делал и из опыта знаю, что очень многие регятся в таких системах).
К тому же если делать более-менее функциональную систему, нужно будет еще и другие данные в БД добавлять (login, password, site title ...)
-
Надо будет проверить с какого количества строк база данных с индексом становиться эффективнее чем текстовый файл.
;) я видел подобного рода статистику-сравнение
текстовой БД и для DBM базы.
Поначалу, текстовая раз в пять быстрее, но когда более 1000 строк начинается отставание от DBM (там как раз индексация присутствует).
+ лучше нормальную БД использовать, можно будет дополнительную статистику собирать да и надежнее.
-
Не скажи - если редиректов будет много, то выборка из базы будет быстрее, чем скажем поиск по текстовому файлу.
Да нет же, я не о том. Можно вообще без баз обойтись. Создание папки с одним скриптом который перенаправляет пользователя (ну, можно логи еще вести, хотя зачем? итак в аксесс.лог все будет сваливаться)
-
Да нет же, я не о том. Можно вообще без баз обойтись. Создание папки с одним скриптом который перенаправляет пользователя...
Да мы поняли, только скрипт откуда будет данные брать? :))
Есть допустим редирект - la-la-la.redirect.ru, в конфиге прописан редирект на redirect.ru/cgi-bin/redirect.pl?from=la-la-la.
И куда редиректить? Т.е. какой-то минимальный набор данных должен быть.
-
Да мы поняли, только скрипт откуда будет данные брать?
в нем самом эти данные и будут... :)
-
+ лучше нормальную БД использовать
Ну уж не знаю.. ИМХО, эта ситуация и так будет напоминать маленький, легальный DDoS а базы типа MySQL будут регулярно "ложиться" при 1000 запросах в секунду. Не тревиальная задача, однако...
-
сделать папку /domains/
и в ней хранить файлы .url
в котором хранить адрес, куда редиректить
И в скрипте определять имя домена, открывать файл и определять URL.
-
И в скрипте определять имя домена, открывать файл и определять URL.
Можно и так.
Alex-01, похоже, уже нашел выход...
-
А почему ни кто не рассмотрел возможность написания RewriteRule для того же апачи? Просто урл преображуется в путь до юзерской папки. И базы не надо.
-
Alex-01, похоже, уже нашел выход...
Спасибо всем за дискуссию и советы, но выход я пока не нашел.
Мне более принципиально надо знать, как организовать автоматический запуск скрипта при наборе адреса
типа third_domain.your_server.ru
Говорят, это нужно что-то прописать в htaccess. Но я не знаю, что именно и как :-)
-
Почитай доку по RewriteRule и автоматически преобразуй third_domain.your_server.ru в /.../your_server.ru/third_domain/
-
Почитай доку по RewriteRule
Хорошо, надо будет поискать эту документацию.
Но, мне бы хотелось все-таки с базой данных, хотя бы в виде
текстового файла, так легче мне управлять клиентами и не
будет много папок.