Нашёл интересный способ избавиться от хешей.
Заменой '#' на 'filter'
Необходимо внутри файла blocklayered.php изменить все символы hash '#' на 'filter'
В моём случае изменил две строки P.S.1.6:
$type_filter['values'][$key]['link'] = $categorie_link.'#'.ltrim($parameters, '/');
'current_friendly_url' => ((int)$n == (int)$nb_products) ? '#/show-all': '#'.$filter_block['current_friendly_url'],
Далее в blocklayered.js в
function reloadContent(params_plus)
изменить код
window.location.href = current_friendly_url;
на
var url = window.location.href;
if(url.indexOf('filter') === -1){
} else {
url = url.substr(0, url.indexOf('filter'));
}
window.history.replaceState(null, null, url + current_friendly_url);
Поэтому хочу уточнить, кто нибудь победил проблему данным способом?
У меня сейчас функционал работает на 50%.
Осталось следующая проблема: при клике по фильтрам всё работает, получаются ссылки следующего вида:
https://test.ru/3-bags/filter/price-9166-34200
Однако если эту ссылку скопировать и вставить в окно броузера, то получаю:
"СТРАНИЦА НЕДОСТУПНА ИЗВИНИТЕ, ЗАПРОШЕНОЙ ВАМИ СТРАНИЦЫ НЕ СУЩЕСТВУЕТ"
Куда ещё копать?
Где ещё поменять символы hash '#' на 'filter'? Судя по всему это не blocklayered.php и blocklayered.js Возможно Dispather.php
Заранее спасибо!
P.S. Ссылка на оригинал в самом конце:
https://www.prestashop.com/forums/topic/436903-modules-blocklayered-of-seo-unfriendly-url-solution-pjax-pushstate-ajax/