URL-адреса страниц категорий Magento
Я хочу создать разбивку на страницы на страницах моей категории. Я добавил это тоже в нижний колонтитул и настроил его через конфигурацию, и он отображается, как и ожидалось.
На первый взгляд выглядит великолепно, однако, когда я выбираю другую страницу, например, 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 разделялся.)
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]