slo_nik
@slo_nik

Возможно ли удалить id из строки запроса?

Добрый вечер.
Есть задача привести ссылки на сайте в более менее приличный вид.
Изначально ссылки были такого вида
"site.ru/car/show?region=region_name&city=city_name&mark=mark_name&model=model_name&id=23364"

Требуют убрать из адресной строки названия контроллера, действия и id.
C частью задачи я справился.
Прописал правила в UrlManager, ссылки стали теперь более читаемыми.
"site.ru/region_name/city_name/mark_name/model_name/23364"

Но заказчик хочет, чтобы id тоже не было, то есть, ссылка должна выглядеть в адресной строке так
"site.ru/region_name/city_name/mark_name/model_name"

Говорит, что так будет лучше для seo.
Подскажите, каким образом можно убрать id из адреса, но чтобы id всё-равно передавался на сервер?
Можно ли это сделать стандартными средствами urlManager?

p.s
Правила urlManager()
'<region:[\w\-]+>/<city:[\w\-]+>/<mark:[\w\-]+>/<model:[\w\-]+>/<id:\d+>' => 'car/show',
'<mark-name:[\w\-]+>/<model-name:[\w+\-]+>/<model:[\w\-]+>' => 'car/search-by-mark',
'<mark-name:[\w\-]+>/<mark:[\d]+>' => 'car/search-by-mark',
'<region-name:[\w\-]+>/<region:\d+>' => 'car/search-by-region',
'<region-name:[\w\-]+>/<city-name:[\w\-]+>/<region:\d+>/<city:\d+>' => 'car/search-by-city',
'<city-name:[\w\-]+>/<city:\d+>' => 'car/search-by-city',
'<mark-name:[\w\-]+>/<region:\d+>/<city:\d+>' => 'car/search-by-region-city-mark',
'<mark-name:[\w\-]+>/<model-name:[\w+\-]+>/<region:\d+>/<city:\d+>' => 'car/search-by-region-city-mark-model',
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
Тут все зависит от того можно ли по параметрам переданным в запросе однозначно идентифицировать нужную запись. Если можно - тогда стоит написать собственное URL-правило которое будет хавать переданные параметры и на основе их определять идентификатор записи. Но стоит позаботится о кэшировании этого дела т.к. подобное правило выйдет довольно сложным
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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