Как исключить папку из RewriteRule в WordPress: несколько методов с примерами кода

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

Метод 1: изменение файла.htaccess

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

  1. Войдите в корневой каталог вашего веб-сайта и найдите файл.htaccess.
  2. Откройте файл.htaccess в текстовом редакторе.
  3. Добавьте следующие строки кода над директивами WordPress RewriteRule:
RewriteCond %{REQUEST_URI} !^/folder-name/

Замените «имя_папки» фактическим именем папки, которую вы хотите исключить.

  1. Сохраните файл.htaccess и загрузите его обратно в корневой каталог вашего веб-сайта.

Метод 2. Использование фильтра rewrite_rules_array

WordPress предоставляет фильтр под названием «rewrite_rules_array», который позволяет программно изменять директивы RewriteRule. Вы можете использовать этот фильтр, чтобы исключить определенную папку из RewriteRule.

  1. Откройте файл function.php вашей темы.
  2. Добавьте следующий фрагмент кода:
function exclude_folder_from_rewrite_rule($rules) {
    $new_rules = array();
    $folder = 'folder-name';
    foreach ($rules as $rule => $rewrite) {
        if (strpos($rule, $folder) !== false) {
            continue;
        }
        $new_rules[$rule] = $rewrite;
    }
    return $new_rules;
}
add_filter('rewrite_rules_array', 'exclude_folder_from_rewrite_rule');

Замените «имя_папки» фактическим именем папки, которую вы хотите исключить.

  1. Сохраните файл function.php.

Метод 3: использование функции add_rewrite_rule

WordPress предоставляет функцию add_rewrite_rule, которая позволяет добавлять собственные правила перезаписи. Используя эту функцию, вы можете исключить определенную папку из правила RewriteRule по умолчанию.

  1. Откройте файл function.php вашей темы.
  2. Добавьте следующий фрагмент кода:
function exclude_folder_from_rewrite_rule() {
    $folder = 'folder-name';
    add_rewrite_rule('^' . $folder . '/(.*)$', 'index.php?folder_param=$matches[1]', 'top');
}
add_action('init', 'exclude_folder_from_rewrite_rule');

Замените «имя_папки» фактическим именем папки, которую вы хотите исключить.

  1. Сохраните файл function.php.

В этой статье мы рассмотрели три различных метода исключения папки из RewriteRule в WordPress. Изменяя файл.htaccess, используя фильтр rewrite_rules_array или функцию add_rewrite_rule, вы можете добиться желаемого исключения. Важно выбрать метод, который лучше всего соответствует вашим конкретным требованиям.

Не забывайте проявлять осторожность при изменении основных файлов и всегда иметь резервную копию вашего сайта перед внесением каких-либо изменений.

Реализуя эти методы, вы можете эффективно исключить папку из RewriteRule в WordPress, что позволит вам лучше контролировать структуру URL-адресов и улучшить общее взаимодействие с пользователем.