Skip to Content

Как сделать ЧПУ при помощи mod_rewrite

modrewriteВо многих CMS есть специальные модули, которые могут помочь вам достигнуть красивых ссылок, которые не только будут благоприятны для поисковиков, но и понятны вашим посетителям.

Дружественные URLы очень важны при разработке динамического содержания сайта, которые используют длинные строки запросов. И если ваша CMS каким-то образом не включает в себя ЧПУ, есть смысл сделать это при помощи mod_rewrite.

Для более наглядного примера, при помощи mod_rewrite, мы преобразуем ссылки типа:

http://www.сайт.com/widgets.php?cat=blue&page=1

в более красивые вид:

http://www.сайт.com/widgets/blue/page1.php

Для того, чтоб сделать ЧПУ при помощи mod_rewrite, нужно в уже известный фаил .htaccess, вставить довольно простую строчку:

RewriteEngine On
RewriteRule ^widgets/(.*)/page(.*).php /widgets.php?cat=$1&page=$2 [L]



Если вы думаете, что будет продолжение, то нет - это все. :) Все довольно просто и понятно. Как для поисковика, так и для пользователей, и если нужно будет записать вашу ссылку (ну мало ли), уж куда быстрее получится записать второй вариант. Тестируйте, товарищи.

  • http://bestLab.com.ua Sergey

    Блин, все сделал как положено (или, может, я натупил?).
    А строка ваще никак не реагирует на изменения..
    Доступ по htaccess на сайте работает, значь хтацес включен...

    Вот аналогично этому я там и намалякал:
    RewriteEngine On
    RewriteRule ^shop_category/(.*)/page(.*)\.php /shop_category.php?category=$1 [L]

  • http://seozest.ru Andrew Steadfast

    Достаточно коротко, но познавательно. :)

  • http://korf.net.ua/ admin

    Посмотри, может со знаками что... я на другом сайте своем проверил, все по этому примеру работает так, как и должно.

  • Sergey

    ya sdelal kak opisenno na etoy statye,
    RewriteEngine On
    RewriteRule ^page/(.*)/(.*) /page.php?p_id=$1&lang=$2 [L]
    vse rabotaet

    no kartinki ne otobrajayutsa...
    oni polucayut vot takoy adress
    http://site.com/page/4/images/logo.jpg
    a daljno bit vot tak
    http://site.com/images/logo.jpg

    Pomaqi reshit problemu...

  • http://www.Icka.ru Руслан

    RewriteEngine On
    RewriteRule ^widgets/(.*)/page(.*)\.php /widgets.php?cat=$1&page=$2 [L]

    Не могу понять откуда береться инфл для заполнения переменных $1 и $2 ???

  • http://www.Icka.ru Руслан

    ммм... если например у нас есть ссылка

    http://www.сайт.ru/...e.php?category=razdel&id=7

    чтобы получить ЧПУ вида

    http://www.сайт.ru/article/razdel/7.html

    то надо написать

    RewriteEngine On
    RewriteRule ^article/(.*)/page(.*)\.html/article.php?category=$1&id=$2 [L]

  • Tttt

    Куда его там вставлять

  • Anton Tymchuk

     Да куда угодно вставляйте, если не заработает, что вряд ли, вставьте в другое место :)