Тема: mod_rewrite, нужно решение.

Ответить в теме
Показано с 1 по 7 из 7
  1. Вверх #1
    Новичок
    Пол
    Мужской
    Сообщений
    57
    Репутация
    13

    По умолчанию mod_rewrite, нужно решение.

    Всем привет..

    Подскажите пожалуйста решение такой проблемы:

    есть правило:
    RewriteRule ^catalogue/([^/]*)/?([a-zA-Z0-9-]+)?/?([a-zA-Z0-9-]+)?/? /3.php?link_text=$1&page=$2&sort=$3 [L]


    Оно работает для одной переменной которая всегда есть, и двух которые могут быть, а могу и не быть, притом по отдельности.

    Нужно следующее правило, которое работало бы для двух переменных которые всегда есть, и двух которые могут быть, и для другого файла.
    По аналогии
    RewriteRule ^catalogue/([^/]*)/([^/]*)/?([a-zA-Z0-9-]+)?/?([a-zA-Z0-9-]+)?/? /4.php?link_text=$1&parent_text=$2&page=$3&sort=$4 [L]


    Не работает. Всеравно идёт на файл 3.php.

    Спасибо за внимание.


  2. Вверх #2
    Посетитель Аватар для крыс
    Пол
    Женский
    Сообщений
    369
    Репутация
    54
    в htaccess только одно правило или несколько?
    важен порядок в том числе

    кстати идет переадресация на 3.php или на 4.php?

  3. Вверх #3
    Новичок
    Пол
    Мужской
    Сообщений
    57
    Репутация
    13
    крыс
    Еще несколько.

    Они идут последними.
    Я менял порядок - выполняется то что раньше - вследствии и идет на файл тот что чье правило раньше.

  4. Вверх #4
    Посетитель Аватар для крыс
    Пол
    Женский
    Сообщений
    369
    Репутация
    54
    естессно, т.к оно поподает под регулярку предыдущего условия
    $ в конце реги ставить нужно

  5. Вверх #5
    Новичок
    Пол
    Мужской
    Сообщений
    57
    Репутация
    13
    Так?

    Код:
    RewriteRule ^catalogue/([^/]*)/?([a-zA-Z0-9-]+)?/?([a-zA-Z0-9-]+)?/$ /shop3.php?link_text=$1&page=$2&sort=$3 [L]
    RewriteRule ^catalogue/([^/]*)/([^/]*)/?([a-zA-Z0-9-]+)?/?([a-zA-Z0-9-]+)?/$ /shop4.php?link_text=$1&parent_text=$2&page=$3&sort=$4 [L]
    Не работает...

  6. Вверх #6
    Посетитель Аватар для крыс
    Пол
    Женский
    Сообщений
    369
    Репутация
    54
    смари, не работает потому, что проверяемое выражение подходит под 1-ю написанную регулярку. И доллар поможет только в случае, когда будут заполнены все 4 параметра, иначе 2-я рега есть частный случай 1-й.

    И вот тут уже тебе ничего не поможет, комп угадывать пожелания не умеет.
    пересмотри систему переадресаций.
    либо найди отличие по которому 2-е ([^/]*) можно отличить от 1-го ?([a-zA-Z0-9-]+)? в первой
    Последний раз редактировалось крыс; 29.11.2007 в 12:23.

  7. Вверх #7
    Новичок
    Пол
    Мужской
    Сообщений
    57
    Репутация
    13
    yeah!!
    Вроде получилось.
    Спасибо что наставили на пусть истинный.


Ответить в теме

Похожие темы

  1. помогите разобраться с настройками mod_rewrite для apach2
    от mel в разделе Программирование
    Ответов: 0
    Последнее сообщение: 15.03.2007, 19:54
  2. помогите разобраться с настройками mod_rewrite для apach2
    от mel в разделе Программирование
    Ответов: 3
    Последнее сообщение: 15.03.2007, 00:33

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения