[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mod_rewrite и ссылки вида
sharki
Всем привет, работал в MODX, там можно включить mod_rewrite, и ссылки будут отображаться в таков виде - www.site.ru/информация/король-аськи/

В .htaccess прописано (кроме прочего)
 RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


Не хочу копать исходники, но мне бы хотелось знать, как грамотно создавать такие ссылки, чтобы /информация была допустим родительской категорией, а /король-аськи дочерней, без жесткого прописывания чего лебо...

Моя идея такова, парсить юрл на сервере, разделять по / и смотреть в бд, в поле "псевдоним" король-аськи и уже определять что это, и получать ID и т.п, т.е есть идентификация по ID, а можно сделать по всевдониму...

Так ли это делается, или по другому? :)

возможно описание ломанное, не обращайте внимания, ведь конец дня и ПЯТНИЦА!!!)))



Спустя 48 минут, 40 секунд (7.10.2011 - 18:06) alex12060 написал(а):
sharki

Это сделано и в вордпресс. Да, мне кажется, что ссылки именно так и парсятся smile.gif

Спустя 1 день, 2 часа, 6 минут, 52 секунды (8.10.2011 - 20:13) Draftpad написал(а):
sharki, Не особо понял, что вы хотите, но попробую догадаться.

Изначально все правила задаются через mod_rewrite, вы просто создаёте шаблон, на подобие:
RewriteRule ^([^/]*)/([^/]*)$ view.php?cat=$1&subcat=$2 [L]

Задаёте в скрипте 2 переменных:
$cat = $_GET['cat'];
$subcat = $_GET['subcat'];

И в запросе работаете с сравнением этих переменных по именам категорий.
При запросе странички "www.site.ru/информация/король-аськи/" в итоге получите 2 переменных:
$cat = "информация";
$subcat = "король-аськи";

Думаю, как составить простой sql запрос на сравнение вы и сами знаете.
В тему же дочерних категорий, я советую создать дополнительное поле с бд, в котором у каждой категории будет указываться id родительской категории, или же 0, если её нету.

Ежели не так понял, извиняюсь.

Спустя 2 часа, 13 минут, 51 секунда (8.10.2011 - 22:27) alex12060 написал(а):
Draftpad

Вы не поняли. В общем, есть ЧПУ вида:
site.ru/категория/подкатегория/подкатегория-1/...н/запись

А в htaccess запись стоит:


RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


Получается, что в переменную $_GET['s'] приходит строка:

категория/подкатегория/подкатегория-1/...н/запись

Так вот при изменении ЧПУ, допустим, вот так:

site.ru/категория/дата/запись/ид

хтаццесс не меняется, но ЧПУ работает. ТАк вот ТС спрашивает, как оное чудо происходит? Может, в самой ЦМС происходит разбиение на так, как указано.

Спустя 2 минуты, 31 секунда (8.10.2011 - 22:29) sharki написал(а):
Draftpad
ПРивет, ну вообщем то можно и так но это является жестким разделением чего либо smile.gif Т.е если ты захочешь ссылки вида
view.php?cat=1&subcat=2&subsubcat=3 то придется писать еще одно правило.

Спустя 7 минут, 16 секунд (8.10.2011 - 22:37) Draftpad написал(а):
sharki, в таком случае, правило оставляете, как и было
RewriteRule ^(.*)$ index.php?q=$1 [L]

просто при получении строки вида:
Цитата
категория/подкатегория/подкатегория-1/...н/запись

разбиваете её на массив, например так:
explode("/", $_GET['q']);
Потом считаете кол-во элементов массива и сравниваете их с результатами из базы.


Цитата
то придется писать еще одно правило.

Ну, во первых, нужно изначально определиться со структурой ссылок и записать все необходимые правила.
Во вторых, извращение, записывать столько подкатегорий, внутри других подкатегорий xDD

Спустя 2 минуты, 11 секунд (8.10.2011 - 22:39) sharki написал(а):
Draftpad
Цитата
Во вторых, извращение, записывать столько подкатегорий, внутри других подкатегорий xDD

Это жизнь)

Спустя 1 день, 16 часов, 58 минут, 36 секунд (10.10.2011 - 15:38) linf написал(а):
Вот хочу поделится идеей:

Получение правильных ссылок без mod_rewrite
http://phpforum.ru/index.php?act=ST&f=11&t=51976
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.