@Asen123

Как убрать GET из URL?

Добрый вечер, понимаю, что тема уже не новая, но всё же не могу найти ответа. Вот полный код htaccess:
"php_value upload_max_filesize 30M
php_value post_max_size 30M

php_value session.gc_maxlifetime 8640000
php_value session.cookie_lifetime 8640000
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
RewriteEngine On
RewriteRule ^5$ $1 [L,QSA]
RewriteCond %{HTTP_HOST} ^сайт.ру$ [NC]
RewriteRule ^(.*)$ https://сайт.ру/$1 [R=301,L]
php_value default_charset utf-8
AddType 'text/html; charset=utf-8' .html .htm .shtml"

Нужно, чтобы когда я переходил на: сайт.ру/q?example=1 было сайт.ру/q/example/1.
Буду рад помощи!
  • Вопрос задан
  • 1044 просмотра
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
RewriteCond %{QUERY_STRING} (^|&)(.+)\=([0-9]{1,})($|&)
RewriteRule ^q$ /%2/%3? [L,R=301]


где (^|&)....($|&) - не важная штука
(.+) - любое больше чем 1 буква или цифра
([0-9]{1,})- любые цифры но не менее 1.
^q$ - то что было в урле до GET
%2 - вторая группа из RewriteCond - аналог $2 из RewriteRule
? - удалить гет параметры.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dodo512
сайт.ру/q?example=1 было сайт.ру/q/example/1

RewriteCond %{QUERY_STRING} (?:^|&)(example)=(1)(?:$|&)
RewriteRule ^q$ https://site.ru/q/%1/%2? [R=301,L]

Ставить в начало файла.
Ответ написан
Ваш ответ на вопрос

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

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