Автор Тема: Как сделать свою службу редиректа?  (Прочитано 5075 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alex-01

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Хотелось бы спросить про службы редиректа.
Неужели в службах редиректа, где тысячи пользователей,
создаются тысячи папок и DNS для доменов третьего уровня?

Вот есть такая служба http://www.inkazan.ru
Делает редирект (переадресацию) с адресов доменов
третьего уровня, например, http://www.reklama.inkazan.ru

Наверняка используются скрипты.
Как сделать подобную штуку на Perl ?

Как передается управление скрипту, и как он получает
адрес, набранный в браузере для последующей переадресации?

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сделать свою службу редиректа?
« Ответ #1 : 11 Апреля 2002, 17:43:55 »
ИМХО здесь создание виртуальных хостов (вот здесь и может работать скрипт). А скрипт нужен только для редактирования htaccess.conf.
The documentations is your friend

Оффлайн Alex-01

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как сделать свою службу редиректа?
« Ответ #2 : 11 Апреля 2002, 18:02:26 »
К сожалению, я не понимаю, как передать скрипту данные адресной строки браузера для редиректа.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сделать свою службу редиректа?
« Ответ #3 : 11 Апреля 2002, 18:18:16 »
Гдето так...

#!/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 будет осуществляться на народ ру.
The documentations is your friend

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Как сделать свою службу редиректа?
« Ответ #4 : 11 Апреля 2002, 18:30:44 »
Делаешь в настройках апача, чтобы все адреса типа third_domain.your_server.ru перенаправлялись на your_server.ru/redirect.php а в скрипте вытаскиваешь хост, из хоста вытаскиваешь имя домена и по домену определяешь куда перенаправить юзера (нужна БД в которой будут имена доменов и URL-ы куда редиректить).

ЗЫ
Я такое на php писал, с теорией могу помочь а с perl-ом нет :(
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сделать свою службу редиректа?
« Ответ #5 : 11 Апреля 2002, 18:38:25 »
Цитировать
(нужна БД в которой будут имена доменов и URL-ы куда редиректить).

БД здесь вовсе не нужна... Зачем усложнять?
The documentations is your friend

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Как сделать свою службу редиректа?
« Ответ #6 : 11 Апреля 2002, 20:53:02 »
Цитировать
БД здесь вовсе не нужна... Зачем усложнять?

Не скажи - если редиректов будет много, то выборка из базы будет быстрее, чем скажем поиск по текстовому файлу.

P.S.:
Надо будет проверить с какого количества строк база данных с индексом становиться эффективнее чем текстовый файл.
2B OR NOT 2B = FF

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Как сделать свою службу редиректа?
« Ответ #7 : 11 Апреля 2002, 23:03:31 »
могу сразу предупредить что база будет быстро разрастаться.
(я такой скрипт для ozz.ru делал и из опыта знаю, что очень многие регятся в таких системах).
К тому же если делать более-менее функциональную систему, нужно будет еще и другие данные в БД добавлять (login, password, site title ...)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Как сделать свою службу редиректа?
« Ответ #8 : 12 Апреля 2002, 03:28:57 »
Цитировать
Надо будет проверить с какого количества строк база данных с индексом становиться эффективнее чем текстовый файл.

;) я видел подобного рода статистику-сравнение
текстовой БД и для DBM базы.
Поначалу, текстовая раз в пять быстрее, но когда более 1000 строк начинается отставание от DBM (там как раз индексация присутствует).

+ лучше нормальную БД использовать, можно будет дополнительную статистику собирать  да и надежнее.
 в исканиях.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сделать свою службу редиректа?
« Ответ #9 : 12 Апреля 2002, 12:04:37 »
Цитировать
Не скажи - если редиректов будет много, то выборка из базы будет быстрее, чем скажем поиск по текстовому файлу.

Да нет же, я не о том. Можно вообще без баз обойтись. Создание папки с одним скриптом который перенаправляет пользователя (ну, можно логи еще вести, хотя зачем? итак в аксесс.лог все будет сваливаться)
The documentations is your friend

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Как сделать свою службу редиректа?
« Ответ #10 : 12 Апреля 2002, 12:42:55 »
Цитировать
Да нет же, я не о том. Можно вообще без баз обойтись. Создание папки с одним скриптом который перенаправляет пользователя...

Да мы поняли, только скрипт откуда будет данные брать? :))
Есть допустим редирект - la-la-la.redirect.ru, в конфиге прописан редирект на redirect.ru/cgi-bin/redirect.pl?from=la-la-la.
И куда редиректить? Т.е. какой-то минимальный набор данных должен быть.
2B OR NOT 2B = FF

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сделать свою службу редиректа?
« Ответ #11 : 12 Апреля 2002, 12:44:14 »
Цитировать
Да мы поняли, только скрипт откуда будет данные брать?

в нем самом эти данные и будут... :)
The documentations is your friend

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сделать свою службу редиректа?
« Ответ #12 : 12 Апреля 2002, 13:08:59 »
Цитировать
+ лучше нормальную БД использовать

Ну уж не знаю.. ИМХО, эта ситуация и так будет напоминать маленький, легальный DDoS а базы типа MySQL будут регулярно "ложиться" при 1000 запросах  в секунду. Не тревиальная задача, однако...
The documentations is your friend

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
А если так:
« Ответ #13 : 12 Апреля 2002, 16:31:53 »
сделать папку /domains/
и в ней хранить файлы .url
в котором хранить адрес, куда редиректить

И в скрипте определять имя домена, открывать файл и определять URL.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сделать свою службу редиректа?
« Ответ #14 : 12 Апреля 2002, 16:43:07 »
Цитировать
И в скрипте определять имя домена, открывать файл и определять URL.
Можно и так.
Alex-01, похоже, уже нашел выход...
The documentations is your friend

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28