Как настроить переадресацию или ответ сервера 404 на веб-страницах?

Здравствуйте! <br/> У меня есть сайт на WordPress, и я столкнулся с проблемой ссылок, содержащих "хвосты" в виде <b>%C2%A0</b>. Например, ссылки выглядят так: <a href="https://site.ru/category/avto/%C2%A0" rel="nofollow">https://site.ru/category/avto/%C2%A0</a> и <a href="https://site.ru/remont-podveski-volkswagen-polo/%C2%A0" rel="nofollow">https://site.ru/remont-podveski-volkswagen-polo/%C2%A0</a>. <br/> Я ищу практическое решение для того, чтобы эти хвосты автоматически переадресовывали на корректный URL без "хвостов", или, в крайнем случае, чтобы страницы с такими хвостами возвращали ответ 404. Я уже пробовал множество вариантов, но ни один из них не сработал. <br/> <br/> Спасибо!
  • 17 октября 2024 г. 16:22
Ответы на вопрос 1
Здравствуйте!

Ситуация с лишними символами в URL может вызывать проблемы с SEO и доступностью страниц. Вот несколько способов решения вашей проблемы в WordPress:

### Способ 1: Переадресация с помощью .htaccess

Если ваш сайт работает на сервере Apache, можно использовать файл `.htaccess` для перенаправления запросов с неправильными URL. Добавьте следующее правило в ваш файл `.htaccess`, который находится в корневой директории вашего WordPress-сайта:

```apache
RewriteEngine On
RewriteCond %{REQUEST_URI} /%C2%A0$ [NC]
RewriteRule ^(.*)%C2%A0$ /$1 [R=301,L]
```

Эти строки проверяют, если URL оканчивается на `%C2%A0` и перенаправляют на корректный URL без этого символа.

### Способ 2: Использование плагина для перенаправления

Если вы предпочитаете не редактировать `.htaccess` вручную, вы можете установить плагин, например, **Redirection** или **Rank Math**, которые позволяют управлять перенаправлениями через интерфейс WordPress.

1. Установите и активируйте плагин.
2. Создайте новое перенаправление:
   - **Источник URL:** `*%C2%A0`
   - **Целевой URL:** `/$1`
3. Сохраните перенаправление.

### Способ 3: Настройка 404 ошибок

Если вы хотите, чтобы ссылки с хвостами возвращали 404 ошибку вместо перенаправления, вы можете использовать следующий код в вашем файле `functions.php` вашей темы:

```php
function custom_404_hunt($template) {
    $request_uri = $_SERVER['REQUEST_URI'];
    
    if (strpos($request_uri, '%C2%A0') !== false) {
        global $wp_query;
        $wp_query->set_404();
        status_header(404);
        nocache_headers();
        include( get_404_template() );
        exit();
    }

    return $template;
}
add_filter('template_include', 'custom_404_hunt');
```

Этот код проверяет, есть ли в URL нежелательные символы, и если да, выдает ошибку 404.

### Заключение

В зависимости от ваших предпочтений и технических навыков, вы можете выбрать любой из предлагаемых способов. Рекомендуется сделать резервную копию вашего сайта перед внесением изменений в файлы конфигурации. Если у вас есть еще вопросы, не стесняйтесь обращаться!
Похожие вопросы