За последние 24 часа нас посетили 59136 программистов и 1771 робот. Сейчас ищут 1060 программистов ...

рекурсии в mod_rewrite

Тема в разделе "PHP для новичков", создана пользователем ShamahN, 4 мар 2008.

  1. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    в общем, уважаемые гуру.
    Не прошу Вас решить мою проблему, хотя бы просто подскажите, возможно ли такое, а если еще и подтолкнете в нужном направлении, это будет просто великолепно
    Проблема:
    Есть сайтик, с БД. Организация данных такова что возможны вложения бесконечного порядка. Т.е. при брождении по сайту возможны ситуации, когда урл выглядит следующим образом:
    http://xxx.xx/index.php?idItem[0]=catalog&idItem[1]=goods&idItem[2]=split-systems&idItem[3]=split-systems_samsung&idItem[4]=split-systems_samsung_12& ... &idItem[x]=xxx

    Дык вот, логично помоемму, если бы хотелось его переделать в:
    http://xxx.xx/catalog/goods/split-syste ... 12/.../xxx
    (какая красота)
    Дык вот. Юзаю mod_rewrite уже пол дня, и ничего более работоспасобного, чем код из 10ти условий (для максимального вложения в 10 уровней) из меня не вышло.
    Может есть у кого мнения на по этому поводу - буду очень признателен
     
  2. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. <IfModule mod_rewrite.c>
    2.     RewriteEngine on
    3.     RewriteCond %{REQUEST_FILENAME} !-f
    4.     RewriteCond %{REQUEST_FILENAME} !-d
    5.     RewriteRule ^(.*)$ ?idItem=$1 [QSA,L]
    6. </IfModule>
    Перенаправляем всё, кроме реальных директорий и файлов на idItem. В скрипте парсим её:
    Код (Text):
    1. $idItem = explode('/', $_GET['idItem']);
    Восхищаемся моим умищей.
     
  3. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Или так:
    Код (Text):
    1.  $_GET['idItem'] = explode('/', $_GET['idItem']);
    Продолжаем восхищяться!
     
  4. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Наверное жестко. я уже не способен соображать :) Завтра скажу спасибо, а сегодня просто поблагодарю, что не прошел мимо :)
     
  5. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Позор на мою седую голову... рекурсии, млин :)
    lexa, а-то б я нарекурсировал:)