URL-адреса страниц категорий Magento


Я хочу создать разбивку на страницы на страницах моей категории. Я добавил это тоже в нижний колонтитул и настроил его через конфигурацию, и он отображается, как и ожидалось.

Pagination

На первый взгляд выглядит великолепно, однако, когда я выбираю другую страницу, например, 4-ю страницу. Я перенаправляюсь на ссылку типа. https://www.example.com/en/mycategory/where/p/4/

Эта страница выдает ошибку 404. https://www.example.com/en/category4?p=4

Работает нормально, кажется, я нигде не могу изменить структуру URL-адресов. Первая идея, которая приходит на ум, - использовать перезапись htaccess. Но это очень скоро станет неприятным, если я также собираюсь добавить фильтры.

, которые генерируют ссылки, такие как https://www.example.com/en/mycategory/where/dir/asc/order/price/

И изменение количества товаров на странице создает ссылку любить https://www.example.com/en/mycategory/where/limit/30 / Которые все дают 404 ошибки.

Это станет неразберихой с помощью htaccess, если я когда-нибудь захочу сделать их совместимыми.

Какое место я должен искать, чтобы выяснить структуру URL-адреса, или где я должен активировать, чтобы принять эту структуру URL-адреса? (Я предпочитаю иметь возможность изменить его, потому что это выглядит как плохое SEO)

Поскольку категории могут иметь подкатегории, ссылка также может иметь больше подразделов перед "/где/" что делает htaccess еще хуже. URL: https://example.com/en/mycategory/mysubcategory/where/p/5

Редактировать: Я попробовал следующий код htaccess, который должен быть рекурсивным, но я получаю 500 внутренних ошибок сервера.

Преобразуйте сокращенный URL-адрес в строки запроса

RewriteRule ^(.*)/where/([^/]*)/([^/]*)(/.*)?$ $1/where/$4?$2=$3 [L,QSA,R=301]

Удалите "/где/" из URL-адреса

RewriteRule ^(.*)/where/?$ $1 [L,QSA,R=301]

(Я бы предпочел перенаправление 301 по причинам SEO, не хочу, чтобы мой pagerank разделялся.)

Author: Gilles Lesire, 2016-03-21

1 answers

Похоже, мой код htaccess верен. Просто нужно было убрать пробел перед R=301

Преобразуйте сокращенный URL-адрес в строки запроса

RewriteRule ^(.*)/where/([^/]*)/([^/]*)(/.*)?$ $1/where/$4?$2=$3 [L,QSA,R=301]

Удалите "/где/" из URL-адреса

RewriteRule ^(.*)/where/?$ $1 [L,QSA,R=301]
 0
Author: Gilles Lesire, 2017-12-15 09:28:21