Как упростить ссылку в браузере при фильтрации?

420
01 февраля 2017, 00:06

На сайте можно фильтровать записи (скажем я хочу отфильтровать по цене). Ссылка становится такой:

http:///mysite.ru/search/transport/cars/c=965&lt=1&sort=new&page=1&p[f]=1&p[t]=2&p[c]=4

Как Вы понимаете, это тихий ужас...

Возможно ли после выполнения фильтрации вместо этой ссылки подставить слово filter? Чтобы получилось вот так:

http:///mysite.ru/search/transport/cars/filter

Answer 1

Если использувуете сервер Apache с PHP, было бы полезно изменить ваши файли .htaccess. (вот перевод статьи на русском, Google Переводчик)

Например, в каталоге /search/transport/, сделайте новый файл .htaccess. В файле, напишите что-то похожий на этом:

RewriteEngine On
RewriteRule ^cars/(.*)$ /index.php?car=$1 [QSA]

Тогда, когда вы посещаете http://mysite.ru/search/transport/cars/1, сервер увидит http://mysite.ru/search/transport/index.php?car=1

Answer 2

Перейти на POST?
Ссылка может быть красивой и лаконичной, но тогда нельзя будет поделится фильтром.
Впрочем, можно добавить функционал типа "Запомнить фильтр", формировать GUID и формировать URI вида http://mysite.ru/search/transport/cars/filter/b6dfc394-2ef8-471e-9bf6-9745a2d92d75.
Но это если только специально для поделится, а так URI будет http://mysite.ru/search/transport/cars/filter.

Детали реализации на Вас, ибо мы ничего не знаем о CMS.

READ ALSO
utf8mb4_unicode_ci и utf8_unicode_ci

utf8mb4_unicode_ci и utf8_unicode_ci

Установил laravel 54

563
Как разбить файловый путь и получить последний элемент?

Как разбить файловый путь и получить последний элемент?

Пытаюсь получить файловый путь в php7:

354
Найти дубли записей в базе

Найти дубли записей в базе

Здравствуйте40 тыс

326
Что будет если не закрыть соединение curl_close()?

Что будет если не закрыть соединение curl_close()?

Через ajax выполняю php-код, с помощью curl авторизуюсь и выполняю кодТаких ajax-запросов может быть очень много за день

392