ЧПУ.Как изменить url?

Есть плагин который сейчас для страницы отдельного мероприятия генерирует следующую ссылку:
site.ru/groups/group-name/event/1

как сделать чтобы страницы имели ссылку следующего вида:
site.ru/groups/group-name/name-event

первая мысль..создать из названия мероприятия slug,вставить его в базу и потом вытаскивать мероприятие не по id а по слагу (алиасу)
хорошее ли это решение или есть лучше?
  • Вопрос задан
  • 400 просмотров
Решения вопроса 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Обычно так и делают. Это классическое решение, которое применяется практически везде. Используют слаг или id.
Что-то вроде
SELECT ... FROM ... WHERE `id`='event-name' OR `slug`='event-name'

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

Есть альтернативный вариант, когда хранится внутренняя таблица соответствий url1 -> url2. Это вариант менее удобен с точки зрения разработчика, т.к приходится прилагать много усилий по поддержанию актуальности и т.д. Такой вариант имеет плюс при правильной реализации - можно хранить цепочку редиректов со старого адреса на новый. Например, если у вас страница 3 раза получала новый адрес, то в этой таблице будет 4 варианта редиректов. Один актуальный и 3 устаревших. При этом при переходе по старому адресу будет происходить редирект на новый. Поддержание такого реестра ссылок дело не очень удобное, но подойдет для приложений уровня крупных компаний, которые не могут себе позволить отправить клиента на пустую страницу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы