@Voolyman
Делаю простые сайты за короткие сроки

Как сделать дополнительное ЧПУ по Get параметрам?

Добрый день коллеги. Установлен MODX, ЧПУ настроено, все хорошо.
Как сделать дополнительное ЧПУ по Get параметрам через .htaccess?
Есть страница namedodomain.ru/baza-znanij в ней находятся статьи, но есть и параметры:
namedodomain.ru/baza-znanij?newstype=news&articlestype=articles
namedodomain.ru/baza-znanij?newstype=news
namedodomain.ru/baza-znanij?articlestype=articles
Хотелось бы видеть это в:
namedodomain.ru/baza-znanij/news
namedodomain.ru/baza-znanij/articles
namedodomain.ru/baza-znanij/all

На данный момент .htaccess:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(ru|en)/favicon.ico$ favicon.ico [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(ru|en)/assets(.*)$ assets$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(ru|en)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ответы на вопрос 3
ruslan_aleev
@ruslan_aleev
MODX с cat-Art.ru
Есть компонент платный - https://modstore.pro/packages/ecommerce/seofilter других решений не встречал.
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега htaccess
RewriteCond %{QUERY_STRING} (^|&)newstype\=(+*)($|&)
RewriteRule ^baza\-znanij$ /baza-znanij/%2? [L,R=301]


Ваще изи
для этого нам поднадобится
1. GET не является частью урла так что его можно выцепить только отдельно RewriteCond %{QUERY_STRING}
2. гет парметр может начинаться так и заканчиваться с & так и с & (^|&)тут гет($|&)
3. экранируем \=
4. групиируем нужный вам гет в скобки ( они тут уже по счету будут вторые) (+*)
5. Вставляем его в реврайт рул, но поскольу $ уже заняты самим рулом то группы из cond будут не $ а %, вставляем вторую группу, она же скобки. %2
6. удаляем гет парметры, ставим в конце ?
Ответ написан
Комментировать
@alexanternik
Можно еще через плагин(событие OnHandleRequest).
https://habrahabr.ru/post/150942/
redspirit.ru/notes/modx-notes/polzovatelskoe-chpu-...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы