Помогите с красивым чпу для новостей (самопис)

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Xansen, 11 сен 2011.

  1. Xansen

    Xansen

    Регистр.:
    30 мар 2006
    Сообщения:
    443
    Симпатии:
    119
    подскажите пожалуйста на конкретном примере

    в htaccess сейчас следущее:
    RewriteRule ^news-([^/]*)\.html$ /view_news.php?id_news=$1 [L]


    сейчас урл новости после реврайта выглядит так:
    ***/news-9228.html

    нужно чтобы из этой новости брался заголовок и после транслитерации подставлялся в урл, т.е. чтобы урл выглядел так:
    ***/news/zdes-nazvanie-novosti.html

    заранее спасибо
     
  2. kr0lik1

    kr0lik1 Создатель

    Регистр.:
    13 июн 2007
    Сообщения:
    28
    Симпатии:
    3
    Тут одним реврайтом не обойдешься.
    Надо иметь соответствующую поддержку в движке сайта.
    К страницам сайта должно быть дополнительное поле в базе данных с ЧПУ именем, и модуль, который распознает страницы по этому полю и отображает страницу.
    Если используется коробочная CMS, то у большинства подобных систем имеются готовые модули. А если собственная разработка, то в двух словах не опишешь.
     
  3. Xansen

    Xansen

    Регистр.:
    30 мар 2006
    Сообщения:
    443
    Симпатии:
    119
    в целом я понял. Нужно транслитерировать русское название новости и писать его в бд. А вот что дальше?
     
  4. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    если не критично проще оставить чтобы новости выводились по id и в конце дописать транслитерированный тайтл например так
    ***/news-9228-zdes-nazvanie-novosti.html
    тем самым вам придется только немного подправить код при выводе ссылок и htaccess
    PHP:
    RewriteRule ^news-([0-9]+)-(.*).html$ /view_news.php?id_news=$[L]
    , а не заботится об уникальности транслитерированного текста который заносится в базу и является идентификатором новости
     
    Xansen нравится это.
  5. Ponochka

    Ponochka Постоялец

    Регистр.:
    21 фев 2008
    Сообщения:
    128
    Симпатии:
    13
    найти соответствие названия и id, затем по id выводить новость. тогда циферок в УРЛе не будет.
     
  6. Xansen

    Xansen

    Регистр.:
    30 мар 2006
    Сообщения:
    443
    Симпатии:
    119
    а если найдется 2 новости с одинаковым тайтлом?!
    Дело в том, что такое на самом деле бывает...
     
  7. sympler

    sympler Постоялец

    Регистр.:
    24 окт 2008
    Сообщения:
    131
    Симпатии:
    6
    правильно говоришь, на такую схему пошли почти все движки, например тот же битрикс...
    название выводится но привязка все равно по id