За последние 24 часа нас посетили 51292 программиста и 1758 роботов. Сейчас ищут 2397 программистов ...

мод рерайт ЧПУ

Тема в разделе "PHP для новичков", создана пользователем Шаман, 16 дек 2009.

  1. Шаман

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

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    доброго времени суток,
    прошу не кричать БОЯН по теме, так как перерыл очень много ресурсов и не нашел толкового ответа на свой вопрос вот в чем дело:
    Код (Text):
    1. RewriteRule ^([a-z]+)/([0-9]*)/([0-9]*)/([0-9]*)/$ /index.php?show=$1&year=$2&month=$3&day=$4
    эта строчка в .htaccess перепишет вот это
    на вот это
    а моя проблема заключается в том, что я на сайте использую url типа
    а вышеописанное правило переписывает только первый вариант(самый длинный). Пробовал писать аналогичные правила для более коротких вариантов, но они начинают перебивать друг друга так, что работает только одно из них... как решить задачку?
     
  2. VItalijs

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

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия
    RewriteRule ^([a-z]+)/{0,1}([0-9]*)/{0,1}([0-9]*)/{0,1}([0-9]*)/$ /index.php?show=$1&year=$2&month=$3&day=$4
    может быть так, хотя я не уверен.
     
  3. Шаман

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

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    суть понял, но не помогло, все как и прежде, работает только самый длинный вариант
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    ключ L в конце вариантов.
    И расположи их в правильном порядке.
     
  5. Шаман

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

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    вот вариант попроще
    Код (Text):
    1. RewriteRule ^([a-z]+)/{0,1}([a-z]+)/$ index.php?mod=$1&action=$2 [L]
    вот такая штука работает
    а такая нет
    ключ [L] не помог, а с порядком я не понял что не так
     
  6. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
  7. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    иногда помогает

    RewriteRule ^(.+)$ index.php?$1 [L,QSA]


    все равно потом в коде все эти переменные разбирать..
     
  8. Шаман

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

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    с трудом осилил чтиво, но мало что понял, на моем конкретном примере не подскажете решение?
     
  9. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    RewriteRule ^([a-z]+)\/$ index.php?mod=$1 [L]
    RewriteRule ^([a-z]+)\/([a-z]+)\/$ index.php?mod=$1&action=$2 [L]
     
  10. Шаман

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

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    большое человеческое спасибо! дальще по аналогии справлюсь
     
  11. Шаман

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

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    что то в этом варианте не так, у меня теперь авторизация взбесилсь... все работает через *опу... если использую оригинальные геты то все работает нормально