@invisii

Hataccess редирект с амперсандой (&)?

Добрый день. Подскажите как сделать редирект всего что после амперсанды (знак &) в урле на то, что до нее, при этом амперсанда должна остаться. Пример:

/review/report.php?id=1131&item_id=21&PHPSESSID=69c6a854f33cc07d61b81257b45d4cf5 
на
/review/report.php?id=1131&item_id=21&
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
@dodo512
?id=1&item_id=2&PHPSESSID=abc
?id=1&PHPSESSID=abc&item_id=2
?PHPSESSID=abc&id=1&item_id=2

Если нужно удалить PHPSESSID и оставить остальные GET параметры.
RewriteCond %{QUERY_STRING} ^(|.*&)PHPSESSID=[^&]*&?(.*)
RewriteRule ^review/report\.php$ /$0?%1%2 [R=301,L]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
Get параметр не является частю урла и RewriteRule его физически не видит.
RewriteCond %{QUERY_STRING} (^|&)id\=1131($|&)
RewriteCond %{QUERY_STRING} (^|&)item_id\=21($|&)
RewriteCond %{QUERY_STRING} (^|&)PHPSESSID\=69c6a854f33cc07d61b81257b45d4cf5($|&)
RewriteRule ^review/report\.php$ /review/report.php?id=1131&item_id=21& [L,R=301]

Рекомендую
https://donatstudios.com/RewriteRule_Generator

так же иногда нужно экраниовать спец символы в стоке куда, но этозависит от конкретного веб сервера, где-то требуется где-то нет
eport.php?id
eport.php\?id
Ответ написан
Ваш ответ на вопрос

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

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