mod_rewrite и ЧПУ





Подскажите, пожалуйста, наиболее удобный, универсальный и правильный, с точки зрения программирования, алгоритм "превращения" URL с переменными (вида http://site.ru/index.php?p=10&b=2-&c=30) в человеко-понятные урлы (вида http://site.ru/catalog/soap/dove/about).

База сайта - PHP+MySQL.

Ответы (6)

RSS
+
0
Rewrite On
RewriteBase /
RewriteRule catalog\/([a-zA-Z]+)\/\/([a-zA-Z]+)\/\/([a-zA-Z]+) index.php?p=$1&b=$2&c=$3

Соответственно в
p будет soap, в b dove, в с about
avatar

sts

  • 28 июля 2009, 04:34
+
0
Поторопился.
Первая строчка
RewriteEngine on
avatar

farid-sha

  • 30 июля 2009, 16:41
+
0
Если уже есть сайт в котором используются такие ключи как p=10 b=2 и с=30
нужно во все таблицы добавить новое поле, которое будет еще одним ключом.
И аккуратно перебить в базе данных в эти поля читабельные английские значения.
А потом с помощью rewrite правила перестраиваются запросы с полей с id на поля с именами
avatar

el-ik

  • 30 июля 2009, 20:49
+
0
Не, ну понятно, что к каждой страничке в базу добавляется поле с читабельным значением. Вопрос - как и что в mod_rewrite писать? А при добавлении или изменении страницы .htaccess постоянно менять?
avatar

chtung

  • 30 июля 2009, 06:35
+
0
simplyv, SEO :)
avatar

gfghfgfgfg

  • 26 июля 2009, 22:26
+
0
А цель-то какая? Просто, чтобы было написано иначе?
Если так, то http://site.ru/index.php?p=10&b=2-&c=30 ничем не хуже http://site.ru/catalog/soap/dove/about Посмотрите на адреса google и никто не страдает.
По-моему, это обычные адреса сегодня. Насколько я понимаю, значения p, b и с могут быть какими угодно, их посетитель задает.
Не могли бы вы пояснить? Просто путей решения несколько, это зависит от цели.
avatar

epevgen694

  • 1 августа 2009, 08:29

Только зарегистрированные и авторизованные пользователи могут отвечать.