Как исправить url-ы на сайте WordPress, чтобы определенные записи имели url без слэша, если у них изначально есть слэш?

Как изменить код в .htaccess для осуществления редиректа всех записей с урлом со слешем на урлы без слеша на сайте WordPress?
  • 30 октября 2023 г. 2:28
Ответы на вопрос 1
Чтобы исправить url-ы на сайте WordPress и удалить слэш из определенных записей, можно воспользоваться фильтром "redirect_canonical". Этот фильтр позволяет изменить поведение редиректа в WordPress.

Вставьте следующий код в файл functions.php вашей темы WordPress:

```php
function remove_trailing_slash_redirect( $redirect_url ) {
    // Проверяем, что мы находимся на записи WordPress
    if ( is_singular() && $redirect_url && '/' === $redirect_url[ strlen( $redirect_url ) - 1 ] ) {
        // Удаляем слэш из url записи
        $redirect_url = rtrim( $redirect_url, '/' );
        // Отключаем канонический редирект
        remove_filter( 'redirect_canonical', 'redirect_canonical' );
        // Ручное применение редиректа
        wp_redirect( $redirect_url, 301 );
        exit;
    }
    return $redirect_url;
}
add_filter( 'redirect_canonical', 'remove_trailing_slash_redirect' );
```

Сохраните изменения в файле functions.php и обновите ваш сайт WordPress. Теперь у записей, у которых изначально есть слэш в url, он будет удален.

Относительно изменения кода в .htaccess для осуществления редиректа всех записей с урлом со слешем на урлы без слеша, в WordPress лучше использовать фильтр, описанный выше, чтобы сохранить совместимость с другими функциями и плагинами. Модификация .htaccess может вызвать проблемы с безопасностью и работой вашего сайта, поэтому не рекомендуется использовать данное решение.
Похожие вопросы