Генерация ЧПУ без номеров ИД (самописная ЦМС)

[Удален]
606

Есть CMS, которая генерит ссылки вот такого вида

http://site.ru/index.php?id=34&doc=nashi-predlozheniya

В логике работы системы, прописано, что по id из базы выбирается все все все что к ней относится.

Существует реврайт, который преобразует вот это

index.php?id=34&doc=nashi-predlozheniya

в это

nashi-predlozheniya-34.html

В принципе тут все просто - название страницы - это просто перепарсинный заголовок из русских

букв...Но проблема в том, что нужно убрать циферу 34 и оставить только название. Возможно ли это?

В настоящий момент правило таково

RewriteRule ^([-_a-zA-Z0-9]+)-([0-9]+).html$ index.php?id=$2&doc=$1

W
На сайте с 21.06.2006
Offline
19
#1

Если id неотъемлемая часть движка, и без этого параметра работать не будет - тогда ничего тут не поделаешь!

Меняйте архитектуру движка.

Напрмер можно сделать так: index.php?url=nashi-predlozheniya, где url будет браться из базы, а потом от него плясать.

LPS v1.1 - система оценки стоимости ссылки с сайта (http://www.openseo.ru/lps/) *новая версия PHP(ООП), MySQL: Cкрипты, Разработка CMS, Веб приложения, SEO сервисы.. (/ru/forum/160619) А Вы Яндекс? (http://www.openseo.ru)
I
На сайте с 29.04.2006
Offline
135
#2

Да можно, дополнительным запросом в базу данных... или сразу выберать по названию... но так ли сильно оно надо?

C
На сайте с 20.09.2007
Offline
114
#3

Я даже предполагаю что это за движок =)

...

В БД добавить еще одно поле, в которое будет вставляться название документа, но транслитом. Потом просто исправить запрос, чтобы выборка шла не по id, а по этому полю. Ну и, конечно, при создании документа сделать проверку на то, чтобы ранее этот документ с этим названием не существовал.

ИМХО, самые лучшие VDS: https://cp.inferno.name/aff.php?aff=4048

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий