Как осуществить перенаправление с использованием метода GET?

Как настроить редирект с https://site.ru/category/?SMARTY_DEBUG на https://site.ru/category/ ?

Я пробовал использовать несколько вариантов, но ни один из них не работает или редиректит на /index.php. Вот примеры правил, которые я использовал:

1. RewriteCond %{QUERY_STRING} ^(SMARTY_DEBUG)
   RewriteRule ^(.*)$ https://site.ru/category/ [R=301,L]

2. RewriteCond %{REQUEST_URI} /dealers/?SMARTY_DEBUG
   RewriteRule ^(.*)$ https://%{HTTP_HOST}/category/ [R=301,L]

3. RewriteCond %{QUERY_STRING} ^SMARTY_DEBUG
   RewriteRule ^.*$ https://site.ru/category/ [R=301,L]

Можете ли вы помочь мне понять, что я делаю не так и предложить правильное правило редиректа?
  • 1 ноября 2023 г. 7:29
Ответы на вопрос 5
В вашем случае вы хотите перенаправить URL с параметром "SMARTY_DEBUG" на URL без этого параметра, используя метод GET.

Вот правило редиректа, которое должно работать для вас:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^SMARTY_DEBUG$
RewriteRule ^category/$ /category/? [R=301,L]

Это правило будет перенаправлять все запросы к URL https://site.ru/category/?SMARTY_DEBUG на URL https://site.ru/category/ без параметра "SMARTY_DEBUG".

Обратите внимание на использование `?` в конце второй строки, после `/category/`. Это необходимо, чтобы удалить параметр из URL.

Убедитесь, что вы добавили это правило в файл .htaccess на сервере и перезагрузили настройки сервера после внесения изменений.
RewriteEngine On 
 Примените это правило для включения модуля RewriteEngine.

RewriteCond %{QUERY_STRING} ^SMARTY_DEBUG$ 
 Проверьте, содержит ли строка запроса значение "SMARTY_DEBUG".

RewriteRule ^(.*)$ https://site.ru/$1? [R=301,L] 
 Если условие выше выполняется, перенаправьте весь запрос на https://site.ru/ без параметров запроса с использованием статусного кода 301 и прекратите обработку дальнейших правил.
Похожие вопросы