Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > ЧПУ как на Авито.ру


Автор: numerovan 6.4.2015, 16:23
Здравствуйте, хотелось бы разобрать ЧПУ как на сайте Авито ...

Как думаете как оно сделано?

Допустим имеем:
1. файл для отображения страниц (контакты, о нас и т.д.)
2. файл для отображения каталога
3. файл для показа одного объявления

допустим взять ссылку 
Код

https://www.avito.ru/favorites

и ссылку 
Код

https://www.avito.ru/rossiya/uslugi


в первой ссылке, на мой взгляд, работает один скрипт, а на второй ссылке другой скрипт. Думаю там какой-то "маршрутизатор" (файл с программой) есть который перебрасывает на нужный файл-скрипт.
К примеру ход мыслей примерно такой: если не нашли слово favorites в каталоге, то ищем в базе в другой таблице, в таблице со страницами, если это слово нашлось то перебрасываем на соответствующий скрипт, который отображает именно страницы.
Когда "маршрутизатор" видит первое слово rossiya, то понимает что речь идет о каталоге и перебрасывает на скрипт заточенного для каталога.

Как добится следующего:
Код

http://sait.ru/1/2/3/.../n 

чтоб приходила вся эта тема в одну переменную вот так 
Код

http://sait.ru/fail.php?v=$1

при этом в файле .htaccess не указывать цепочку в виде 
Код

RewriteRule ^([a-z-]+)/([a-z-]+)/([a-z-]+)/([a-z-]+)$  /ads.php?v[]=$1&v[]=$2&v[]=$3&v[]=$4 // тут глубана как видно до 4 ... а если 20 будет? не вариант вот так вот писать ...


Добавлено через 2 минуты и 17 секунд
а ... походу понял ... нужно брать всю адресную строку, делить ее на прямые слеши / и дальше расфасовывать. что куда должно лететь и отображатся.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)