Как можно исключить определенную категорию из редиректа, при этом чтобы все страницы внутри этой категории продолжали выполнять редирект?

Добрый день! Я пытаюсь исключить редирект для страницы <a href="https://site.ru/astrology/" rel="nofollow">https://site.ru/astrology/</a>, но каждый раз, когда добавляю соответствующее правило, редиректы перестают работать. Все страницы перенаправляются на турбо-страницы. Вот код, который я использую: 

<pre><code>RewriteEngine On

# ИСКЛЮЧАЕМ ТОЛЬКО главную страницу категории (не подстраницы)
RewriteCond %{REQUEST_URI} ^/astrology/?$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/wp-admin [NC,OR]
RewriteCond %{REQUEST_URI} ^/wp-login\.php [NC,OR]
RewriteCond %{REQUEST_URI} \.(css|js|png|jpe?g|gif|webp|svg|woff2?)$ [NC]
RewriteRule ^(.*)$ https://yandex.ru/turbo?text=https://%{HTTP_HOST}/$1 [R=301,L,QSA]


&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&lt;/IfModule&gt;</code></pre>

Как мне корректно исключить редирект для указанной страницы?
  • 19 апреля 2025 г. 11:55
Ответы на вопрос 2
Чтобы исключить редирект для первой страницы категории `/astrology/` и при этом сохранить редиректы для всех остальных страниц, вам необходимо поменять порядок правил. Ваша текущая конфигурация применяет редирект на все соответствующие страницы, включая главную страницу категории, из-за того, что условие на исключение разрывает потоки, не позволяя редиректу быть корректно применённым.

Ниже приведен пример, как вы можете изменить ваш `.htaccess`, чтобы исключить редирект на страницу `/astrology/`:

```apache
RewriteEngine On

# ИСКЛЮЧАЕМ главную страницу категории astrology
RewriteCond %{REQUEST_URI} ^/astrology/?$ [NC]
RewriteRule ^ - [L]

# ИСКЛЮЧАЕМ административные страницы и статичные файлы
RewriteCond %{REQUEST_URI} ^/$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/wp-admin [NC,OR]
RewriteCond %{REQUEST_URI} ^/wp-login\.php [NC,OR]
RewriteCond %{REQUEST_URI} \.(css|js|png|jpe?g|gif|webp|svg|woff2?)$ [NC]

# РЕДИРЕКТИРУЕМ остальные страницы на Турбо-страницы
RewriteRule ^(.*)$ https://yandex.ru/turbo?text=https://%{HTTP_HOST}/$1 [R=301,L,QSA]

<IfModule mod_rewrite.c>
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
```

В данном примере:

1. Мы сначала добавляем правило `RewriteRule ^ - [L]`, которое не делает ничего (и завершает обработку правил), если запрашиваемый URI соответствует `/astrology/`. Это гарантирует, что редирект для этой страницы будет проигнорирован.
2. Все другие страницы продолжат обрабатываться дальше, как и раньше, включая редиректы на Турбо-страницы.

Убедитесь, что этот код правильно размещён в вашем файле `.htaccess` и протестируйте, работает ли он.
Просто переверни логику: замени OR на AND и добавь перед редиректом RewriteCond %{REQUEST_URI} !^/astrology/?$ [NC] (и аналогично для /, wp‑admin, wp‑login и статики, без [OR]), тогда редирект будет везде кроме главки категории
Похожие вопросы