В .htaccess прописано (кроме прочего)
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Не хочу копать исходники, но мне бы хотелось знать, как грамотно создавать такие ссылки, чтобы /информация была допустим родительской категорией, а /король-аськи дочерней, без жесткого прописывания чего лебо...
Моя идея такова, парсить юрл на сервере, разделять по / и смотреть в бд, в поле "псевдоним" король-аськи и уже определять что это, и получать ID и т.п, т.е есть идентификация по ID, а можно сделать по всевдониму...
Так ли это делается, или по другому? :)
возможно описание ломанное, не обращайте внимания, ведь конец дня и ПЯТНИЦА!!!)))
Спустя 48 минут, 40 секунд (7.10.2011 - 18:06) alex12060 написал(а):
sharki
Это сделано и в вордпресс. Да, мне кажется, что ссылки именно так и парсятся
Это сделано и в вордпресс. Да, мне кажется, что ссылки именно так и парсятся
Спустя 1 день, 2 часа, 6 минут, 52 секунды (8.10.2011 - 20:13) Draftpad написал(а):
sharki, Не особо понял, что вы хотите, но попробую догадаться.
Изначально все правила задаются через mod_rewrite, вы просто создаёте шаблон, на подобие:
Задаёте в скрипте 2 переменных:
И в запросе работаете с сравнением этих переменных по именам категорий.
При запросе странички "www.site.ru/информация/король-аськи/" в итоге получите 2 переменных:
Думаю, как составить простой sql запрос на сравнение вы и сами знаете.
В тему же дочерних категорий, я советую создать дополнительное поле с бд, в котором у каждой категории будет указываться id родительской категории, или же 0, если её нету.
Ежели не так понял, извиняюсь.
Изначально все правила задаются через 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 запись стоит:
Получается, что в переменную $_GET['s'] приходит строка:
категория/подкатегория/подкатегория-1/...н/запись
Так вот при изменении ЧПУ, допустим, вот так:
site.ru/категория/дата/запись/ид
хтаццесс не меняется, но ЧПУ работает. ТАк вот ТС спрашивает, как оное чудо происходит? Может, в самой ЦМС происходит разбиение на так, как указано.
Вы не поняли. В общем, есть ЧПУ вида:
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
ПРивет, ну вообщем то можно и так но это является жестким разделением чего либо Т.е если ты захочешь ссылки вида
view.php?cat=1&subcat=2&subsubcat=3 то придется писать еще одно правило.
ПРивет, ну вообщем то можно и так но это является жестким разделением чего либо Т.е если ты захочешь ссылки вида
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
Получение правильных ссылок без mod_rewrite
http://phpforum.ru/index.php?act=ST&f=11&t=51976