Редирект index.php?kategory=

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

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

    Voshal Мизантроп

    Регистр.:
    30 мар 2009
    Сообщения:
    286
    Симпатии:
    108
    Приветствую всех. Прошу прощения, если вопрос слишком простой, но разобраться не смог.

    Ссылки такого вида
    http://www.site.ru/index.php?kategory=nokia
    http://www.site.ru/index.php?kategory=samsung

    Необходимо, чтобы при переходе по ссылке http://www.site.ru/index.php?kategory=nokia пользователь переходил на адрес http://www.site.ru/nokia.html но так как такой страницы нет, чтобы она обрабатывалась, как http://www.site.ru/index.php?kategory=nokia

    Читал подобные темы, попробовал реализовать так
    RewriteRule /index.php?kategory=(.*) /$1\.html [R=301,L,QSA]
    не работает.

    nokia, samsung и т.д, могу быть различные, поэтому решение строго прописать nokia, samsung не рассматривается.

    Заранее благодарю за ответ.
     
  2. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    996
    Симпатии:
    268
    может Вы неправильно сформулировали задачу? Обычно требуется преобразовать урлы из kategory=nokia в nokia.html и переходить по ссылкам nokia.html Если это так, то вот решение.

    Если же Ваше правило, которое описали выше правильное, но не работало, то вы забыли указать RewriteEngine On
     
  3. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    Вот так работает:
     
    Voshal нравится это.
  4. Voshal

    Voshal Мизантроп

    Регистр.:
    30 мар 2009
    Сообщения:
    286
    Симпатии:
    108
    Это именно то, что мне нужно.

    Еще вопросик, как сделать тоже самое только для ссылок вида news.php?title=nazvanie чтобы перенаправляло сюда news/nazvanie.html а обрабатывало, как news.php?title=nazvanie
     
  5. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    Код:
    RewriteRule ^([a-zA-Z0-9]+)\.html$ /news.php?zzz=zzz&title=$1
    
    RewriteCond %{QUERY_STRING} ^title=([a-zA-Z0-9]+)$
    RewriteRule ^news\.php$ /%1.html? [R=301,N]
     
  6. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    996
    Симпатии:
    268
    Не совсем понятно зачем 3 строки, если все можно сделать в одну.
     
Статус темы:
Закрыта.