2015-01-10 2 views
2

Я создаю небольшую базу данных, управляемую базами данных CMS. Я пытаюсь выяснить оптимальную стратегию для этого сценария:Стратегия для постоянных ссылок (а не Wordpress)

У меня есть URL-адрес, как это:

http://www.my.com/news/cool-slug

Кто-то спасает или разделить этот URL (или он получает индексируются Google).

Теперь я понимаю, что пуля не совсем правильно, и изменить его на:

http://www.my.com/news/coolest-slug

Google и пользователи, которые ранее спас URL ударят ошибку 404.

Это лучшее и распространенное решение (показывающее 404), или я должен хранить таблицу в моей базе данных со всей историей сгенерированных URL-адресов, сопоставленных с идентификатором страницы, и перенаправлять с заголовком 301? Будет ли это лишней нагрузкой на мою систему (эта таблица может получить много записей ...)?

+0

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

+0

Возможно, связано: [Как сделать перенаправление в PHP] (http://stackoverflow.com/questions/768431/how-to-make-a-redirect-in-php/768472#768472) – mbschenkel

+0

Но я должен волноваться и создать систему для перенаправления старых URL-адресов на новые, или я просто позволю им ударить 404? Что делают такие системы, как Wordpress? – fana

ответ

0

Одним из распространенных решений, используемых многими сайтами (включая StackOverflow, насколько я могу судить) является включение идентификатора в URL-адрес. Слишком просто для SEO/красоты/что угодно, но не используется для идентификации страницы.

Пример: http://stackoverflow.com/questions/27877901/strategy-for-permanent-links-not-wordpress

До тех пор, пока у вас есть правильный идентификатор, это не имеет значения, что вы используете пули. Сайт будет просто обнаруживать, что пул ошибочен и генерирует перенаправление на правый. Например, следующий URL действителен:

http://stackoverflow.com/questions/27877901/old-slug

Если по каким-то причинам вы не хотите, идентификатор в URL, то либо вы запрещаете изменения (много новостей сайта сделать это: вы можете заметить, что иногда slug и название новостной статьи не совпадают), или вам придется жить со случайными 404, когда изменяется слизь. Я никогда не видел, чтобы какой-либо веб-сайт имел систему, чтобы сохранить историю слизняков, поскольку это может быть довольно раздражающим (например, вы не сможете «повторно использовать» slug).

+0

Wordpress отслеживает эти изменения пули для сообщений. Он использует таблицу 'wp_postmeta' и добавляет ключ' _wp_old_slug', связанный с post_id. Я думаю, что он ищет эту таблицу, если не найдено другого совпадения, пока не появится 404. – fana

Смежные вопросы