Назад | Перейти на главную страницу

Как отключить автоматическое перенаправление в WordPress-htaccess-файле

WordPress имеет функцию в своем htaccess-файле, которая выполняет автоматическое перенаправление, если имена файлов совпадают с существующим источником.

Например, если вы введете http://rechnen-in-der-wolke.net/datensicherheit он перенаправит вас на http://rechnen-in-der-wolke.net/datensicherheit-cloud-anbieter-hagel-it/

Как отключить эту функцию без снижения общей функциональности?

Вот так выглядит стандартный htaccess-файл:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Я уже пытался удалить RewriteCond %{REQUEST_FILENAME} !-f (ничего не меняется) или RewriteCond %{REQUEST_FILENAME} !-d (ничего не меняется) или оба (цикл перенаправления).

Я нашел решение своей проблемы здесь: https://wordpress.stackexchange.com/questions/3326/301-redirect-instead-of-404-when-url-is-a-prefix-of-a-post-or-page-name

В functions.php необходимо вставить следующий код:

add_filter('redirect_canonical', 'no_redirect_on_404');
function no_redirect_on_404($redirect_url)
{
    if (is_404()) {
        return false;
    }
    return $redirect_url;
}

Спасибо всем, кто мне помог!

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

Если вы измените заголовок сообщения, Wordpress перенаправит (301) старый на новый URL. Это не имеет ничего общего с .htaccess, это функция wordpress. К сожалению, я никогда не видел, чтобы эта функция была должным образом задокументирована в кодексе. Следовательно, я не могу сказать вам, какая функция wp_core это делает и где в ядре она расположена (и вы же не хотите трогать ядро, верно?).

Ранее использованные ярлыки хранятся в базе данных в wp_postmeta стол. Проверить _wp_old_slug в столбце meta_key (фактические заголовки хранятся в столбце meta_value). Если вы когда-либо хотите, чтобы это поведение по умолчанию не происходило в конкретном случае, здесь нужно удалить значение и выполнить поиск «использованных» URL-адресов.