RewriteCond %{REQUEST_URI} !^/blog/news
RewriteRule ^blog/(.*) /blog/news/$1 [QSA,L,R=301]
Эти директивы не должны вызывать перенаправление l oop при запросе /blog/
, однако они перенаправят вас на /blog/news/
. Чтобы предотвратить это нежелательное перенаправление, вы можете просто изменить подшаблон .*
(0 или больше) на .+
(1 или больше), чтобы он соответствовал /blog/<something>
, а не /blog/<anything>
.
В других слова:
RewriteCond %{REQUEST_URI} !^/blog/news
RewriteRule ^blog/(.+) /blog/news/$1 [L,R=301]
Флаг QSA
здесь не требуется, поскольку вы не добавляете строку запроса в строку подстановки .
ОБНОВЛЕНИЕ: Вы поместили директивы не в то место - они должны go перед секцией # BEGIN WordPress
, в самом верху вашего .htaccess
файла. Если поместить их в конец, они просто не будут обработаны.
Однако это все еще не причина перенаправления l oop.
Однако вы делаете необходимо убедиться, что вы очистили кеш браузера. Любые ошибочные 301-е (возможно, во время тестирования) будут постоянно кэшироваться браузером. Первый тест с 302 (временными) перенаправлениями, чтобы избежать проблем с кешированием.