Как настроить редирект только для урлов с query string?

Можно ли настроить редирект только для URL-адресов, содержащих строки запросов? Например, для перенаправления URL-адреса domain.com/foo?something=1 на domain.com/?something=1, но при этом не перенаправлять URL-адреса типа domain.com/foo/bar, то есть применить редирект только для URL-адресов с параметрами.
  • 1 августа 2024 г. 15:33
Ответы на вопрос 2
Да, для этого можно использовать правило перенаправления с использованием строки запроса в условии. Например, при использовании Apache веб-сервера и модуля mod_rewrite, такое правило может выглядеть следующим образом:

```
RewriteEngine On
RewriteCond %{QUERY_STRING} .
RewriteRule ^(.*)$ /$1 [R=301,L]
```

Это правило перенаправит все URL-адреса с параметрами на ту же страницу без пути, сохраняя только строку запроса. То есть URL domain.com/foo?something=1 будет перенаправлен на domain.com/?something=1.

Обратите внимание, что строки запросов, не содержащие параметров (например, domain.com/foo?), не будут попадать под это правило и не будут перенаправлены.

Если вы используете другой веб-сервер или метод перенаправления, то могут потребоваться другие конфигурационные параметры или правила.
попробуй так: 
location /foo {
        # Проверяем, существует ли query string
        if ($query_string) {
            rewrite ^/foo(.*)$ /$1? permanent;
        }
    }
Похожие вопросы