Задать вопрос
@Max_Borisov

Динамическое создание ЧПУ ссылки?

Есть фильтр по ресторанам. Рестораны фильтруются по станции метро, среднему чеку, виду кухни, типу заведения и тд. Примеры ссылок для фильтрации:
site.ru/metro/станция_метро
site.ru/metro/станция_метро/kitchen/вид_кухни
Пользователь на странице отмечает галочками нужные пункты, потом нажимает "найти". Я думаю формировать юрл с помощью js. Правильное ли это решение?
P.S. Чтобы передать, например, несколько станций метро лучше использовать разделитель или есть варианты лучше? То есть ссылка будет такого вида site.ru/metro/станция_метро1,станция_метро2
  • Вопрос задан
  • 302 просмотра
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 4
Negwereth
@Negwereth
lvivcss.com.ua
Для этого существуют search params, которые в url после ? идут. А тут черти что.
Чем именно обусловлен именно такой формат url?
Ответ написан
@sferos
А если js отключен? Результатом будет пустая ссылка. В любом случае, лучше смотрите в сторону get
Ответ написан
abyrkov
@abyrkov
JavaScripter
При вашем наборе условий, это единственное решение. Как тут можно оценить правильность, непонятно.
Но условия, честно говоря, дурацкие.
Ответ написан
Комментировать
делал недавно
у всех чекбоксов в фильтре писал в data-аттрибуты кусок ссылки и просто складывал их через /
если выбирались 2 чекбокса из одной группы, например 2 бренда то этот кусок ссылки делал в гет-параметры
яндекс все нормально начал обрабатывать через 1.5-2 месяца и выводить такие страницы в поиск

главное чтоб цмска жрала такие ссылки и правильно их обрабатывала + делала нормальный h1 и меты

UPD
немного не так написал

проходишься циклом по блокам фильтра
если в каком-то из блоков 2 галки и более например выбрано 2 бренда то формируешь ссылку с гет-параметрами
если по одной галке то формируешь чпу-ссылку

повторю главное что цмска умела такие ссылки распарсивать
для этого делают обычно префикс к ним например /f/
получается что то типа site.ru/catalog/f/brand_бренд/color_цвет/
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы