Вопрос по внутренним ссылкам

__@u

Новичок
Вопрос по внутренним ссылкам

Есть древовидная структура разделов. Пример урла страницы: www.some.ru/1/cremlin/history/.
Ссылаюсь на эту страницу на другой странице сайта.
Спустя пару недель меняю урл на www.some.ru/2/cremlin/history/. Соответственно ссылка станет нерабочей.
Подскажите, как вы это разруливаете или 'правильную' формулировку этой проблемы.
Спасибо заранее.
 

__@u

Новичок
Автор оригинала: Апокалипсис
__@u
а зачем это нужно ?
Сейчас сайт наполняем информацией.
На станицах прописываем ссылки на другие страницы сайта.
Понадобилось изменить структуру разделов (некоторые разделы перенести в другие разделы).
Ссылки стали нерабочими, т.к. изменился урл некоторых страниц.
Пришлось править вручную.

Для нагляности перенесли страницу 'Кремль' в раздел 'Достопримечатьности'. Урл был some.ru/city/cremlin/,
а стал some.ru/city/sights/cremlin/. Ссылка нерабочая на другой странице. Разделов много, страниц много.
Структура:
О городе
История
Достопримечательности
Памятник Ленину
Кремль
Известные люди

О городе
История
Достопримечательности
Памятник Ленину
Кремль
Известные люди
 

akxxiv

Новичок
1. Продумываем структуру до того как начали заполнять.
2. Сделать утилитку, которая ползает по сайту и собирает битые ссылки, затем по списку правим ссылки.
3. Хранить не сами ссылки, а метки типа [object_id], ссылки уже генерировать на лету....
4. может еще как-то....
 

__@u

Новичок
Автор оригинала: dimagolov
У тебя структура страничек/разделов чем определяется?
Деревом.

Разделы:
PHP:
CREATE TABLE IF NOT EXISTS `sections` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `lft` int(10) unsigned NOT NULL,
  `rgt` int(10) unsigned NOT NULL,
  `type` varchar(20) NOT NULL,
  `name` varchar(254) NOT NULL,
  `uri` varchar(254) NOT NULL,
  `state` tinyint(1) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=164 ;
Страницы:
PHP:
CREATE TABLE IF NOT EXISTS `m_pages` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `content` text NOT NULL,
  `section` int(10) unsigned NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=78 ;
Урл вида some.ru/city/cremlin бью эксплодом, получаю id раздела, а по нему страницу или что-то еще.
Но если урл сменился, то... ж*.

Автор оригинала: akxxiv
1. Продумываем структуру до того как начали заполнять.
2. Сделать утилитку, которая ползает по сайту и собирает битые ссылки, затем по списку правим ссылки.
3. Хранить не сами ссылки, а метки типа [object_id], ссылки уже генерировать на лету....
4. может еще как-то....
Спасибо.

2. поясните немного пожалуйста. собрал ссылки, а дальше как определить урл новых разделов?
3. понятно, жаль, что придется перелопачивать весь текст в поисках меток.
4. подскажите, ключевые слова в гугле по этому вопросу.
 

Crys

Двинутый новичок
Правильно для SEO по старому адресу выставлять редирект на новый адрес. 301 Moved Permanently.
Получается, разумно делать делать копию страницы, а по старой страничке редиректить на новую. Каким макаром обрабатывать такие страницы - дело вкуса.
Ну а если ссылать не на прямые ссылки, а на метки (как было выше посоветовано), то вообще всё в шоколаде будет.
 

__@u

Новичок
Всем спасибо. Воспользуюсь 3-им предложенным вариантом.
 
Сверху