Как удалить дубли или настроить перенаправления на сайте?

Как можно реализовать редирект с множества страниц, подобных /fajer-shok-kak-ne-postradat-ot-prazdnichnyx-salyutov/?XXXX=YYYY, на одну конкретную страницу /fajer-shok-kak-ne-postradat-ot-prazdnichnyx-salyutov с использованием .htaccess? Возможно ли это и как это можно настроить правильно?
  • 8 мая 2024 г. 12:40
Ответы на вопрос 2
Для реализации редиректа с множества страниц на одну конкретную страницу с использованием .htaccess, можно использовать следующий код:

```apache
RewriteEngine on
RewriteCond %{QUERY_STRING} ^XXXX=YYYY$
RewriteRule ^fajer-shok-kak-ne-postradat-ot-prazdnichnyx-salyutov/$ /fajer-shok-kak-ne-postradat-ot-prazdnichnyx-salyutov? [L,R=301]
```

Этот код будет перенаправлять все запросы с параметром `XXXX=YYYY` на страницу `/fajer-shok-kak-ne-postradat-ot-prazdnichnyx-salyutov` с использованием постоянного редиректа (301).

Помните, что для использования .htaccess у вас должен быть доступ к файлу на сервере и сервер должен поддерживать модуль mod_rewrite. Не забудьте также делать резервную копию .htaccess перед внесением изменений.

Если у вас возникнут сложности с настройкой редиректа, рекомендуется обратиться к специалисту по настройке .htaccess или к администратору сервера.
Для того чтобы запретить индексацию GET параметров в robots.txt файле, вы можете использовать директиву "Disallow" с символом "?" для указания наличия GET параметров в URL. 
robots.txt:
User-agent: *
Disallow: /*?

Символ "?" обозначает начало GET параметров в URL.

Бонус:
Чтобы запретить все get параметры:
nginx conf:
server {
    listen 80;
    server_name example.com;

    location / {
        if ($args) {
            return 403;  # Запретить доступ к страницам с GET параметрами
        }
        # Ваша дальнейшая конфигурация для обработки запросов
    }
}

Этот конфигурационный блок будет блокировать доступ к страницам с GET параметрами и возвращать ошибку 403 "Forbidden".
PS Не забудь ребунтнуть nginx

htaccess:
RewriteEngine On
RewriteCond %{QUERY_STRING} .+
RewriteRule ^(.*)$ $1? [R=301,L]

Этот блок будет перенаправлять любые URL с GET параметрами на тот же URL без параметров с кодом 301.
Похожие вопросы