Rewrite + cms + папки

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем sp1rit, 4 мар 2008.

Статус темы:
Закрыта.
  1. sp1rit

    sp1rit Постоялец

    Регистр.:
    30 сен 2006
    Сообщения:
    51
    Симпатии:
    5
    Приветствую.
    Подскажите немного логикой как реализовать следующее.

    есть таблица
    |id|pid|title|alias|
    |1|0|название 1|page
    |2|1|название 2|shop
    |3|1|название 3|category
    |4|3|название 4|contacts


    нужно чтобы при запросе
    /page/shop/contacts/
    выдавалась страница с id=4

    а при
    /page/contacts/
    выдавалась ошибка

    Ещё вопросы:
    как удобней сделать генерацию ссылки при её составлении?
    как лучше узнавать родителя, который на папку выше?

    Смотрел в битриксе, так они решили так сильно не морочиться и создавать все папки (у меня в таблице alias) на физическом (файловом) уровне.

    Подкиньте плиз идей, ссылок, цветов )))))))
     
  2. difour

    difour Прохожие

    без файла обработки урлов нет возможности такое реализовать.

    тебе надо убрать префикс /page/, раздробить строку с использованием /, и потом пройтись по массиву и проверить, если первый элемент имеет в базе pid = 0, и второй... имеет pid = mass[i-1].id; а потом исходя из самого последнего сделать запрос и вывести информацию.
     
  3. sp1rit

    sp1rit Постоялец

    Регистр.:
    30 сен 2006
    Сообщения:
    51
    Симпатии:
    5
    искал немного не это, а решение как удобнее хранить, извлекать и отдавать урл при реврайте. решил сделать хранение данных об урл (в моём примере "/page/contacts/") в базе данных
     
  4. vovaNux

    vovaNux Постоялец

    Регистр.:
    10 апр 2007
    Сообщения:
    125
    Симпатии:
    16
    Хранение данных об урле по меньшей мере нелогично - пропадает весь смысл реврайта. Советую всё-таки продумать алгоритм парсинга строки запроса. База в каком виде представлена?
     
  5. sp1rit

    sp1rit Постоялец

    Регистр.:
    30 сен 2006
    Сообщения:
    51
    Симпатии:
    5
    вот выше пример стоит.
    Мне не очень важен чтобы смысл в реврайте был - главное работа программы верная ))))
     
Статус темы:
Закрыта.