|
|
|
| Работаю с древовидной структурой сайта при неограниченной вложенности.
структура БД примерно такая:
id - уникальный ИД
url - больше не уникальный человекочитаемый адрес на латинице
title - заголовок русский
text - содержимое
parent - id родительской страницы
|
Раньше использовал уникальные значения url (помимо уникального же id) для каждой страницы, то есть index.php?page=somepage вело на строго определенную страницу, вне зависимости от глубины ее залегания (GET-параметр для навигации был всегда один).
Связался на свою голову с сеошниками. Те жаждут настоящего ЧПУ вида "site.ru/services/someservice/description/main".
В связи с этим, возникает вопрос.
Получаю через mod_rewrite в index.php REQUEST_URI указанного выше сеошного вида. Как правильнее поступить -
1) рекурсивно проверять наличие записи "services" в корне, "someservice" в "services" и так далее, после чего выводить либо страницу с содержимым, либо по первой же ошибке кидать 404,
2) хранить в поле url готовую полную ссылку со всеми родителями и ориентироваться на нее целиком?
И что делать, если в определенный момент действительно понадобится сослаться на физически существующую директорию, скажем, /admin/, а не на страницу с `url`='admin'? | |
|
|
|
|
|
|
|
для: DJ Paltus
(23.05.2011 в 15:44)
| | Тут обычно поступают проще, выстраивают ссылку произвольного уровня вложенности, как нужно, а на конце все-равно идет уникальный номер - с ним и работают, а на все что идет до него просто не обращают внимание. | |
|
|
|
|
|
|
|
для: cheops
(23.05.2011 в 16:56)
| | Это получается, что ссылка
"http://site.ru/services/someservice/cat/main" приводит тода же, куда и "http://site.ru/services/blabla/main"? | |
|
|
|
|
|
|
|
для: DJ Paltus
(23.05.2011 в 17:45)
| | Если main уникально в пределах системы, то да, если уникальность ключевых слов выдержать не удается, тогда, конечно, такой способ не подойдет. | |
|
|
|