За последние 24 часа нас посетили 21187 программистов и 1632 робота. Сейчас ищут 1398 программистов ...

Перенаправление

Тема в разделе "Регулярные выражения", создана пользователем Nikolai_, 11 апр 2011.

  1. Nikolai_

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

    С нами с:
    27 авг 2010
    Сообщения:
    133
    Симпатии:
    0
    Помогите, пожалуйста, решить следующую проблему. Имеется вот такого вида url’ы

    http://site/gallery/shkola_17/gallery.php?album=sh17_1970-1971&show=2

    а надо выделить из них в качестве переменных следующие участки shkola_17, sh17_1970-1971 и 2 и перенаправить их на

    http://site/gallery/redirect.php?gallery= shkola_17&album=sh17_1970-1971&show=2

    Не особо силен в командах для .htaccess. Написал по аналогии с одним примером вот это в файле .htaccess в папку gallery, но оно что-то не работает.

    RewriteRule ^(.+)/gallery.php?album=(.+)&show=(.*)$ redirect.php?gallery=$1&album=$2&show=$3

    Подскажите, как решить проблему.
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Если получится ссылки вида
    Код (Text):
    1. http://site/gallery/shkola_17/gallery.php?album=sh17_1970-1971&show=2
    заменить на
    Код (Text):
    1. http://site/gallery/shkola_17/sh17_1970-1971/2
    что не сложно, то можно сделать так
    Код (Text):
    1. RewriteEngine On
    2. RedirectMatch site/gallery/([0-9a-zA-Z_\-]*)/([0-9a-zA-Z_\-]*)/([0-9]*)/?$ http://site/gallery/redirect.php?gallery=$1\&album=$2\&show=$3
    Как перенаправлять переменные после ? не знаю.
     
  3. Crayday

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

    С нами с:
    7 апр 2011
    Сообщения:
    26
    Симпатии:
    0
    Nikolai_, ошибка в регулярном выражении. "?" - это зарезервированный символ, означающий "предшествующий знаку вопроса символ встречается ноль или один раз". То есть как "*", только не такой жадный. В остальном в вашем регулярном выражении ошибки не вижу - если экранировать знак вопроса, должно заработать.