2015-05-20 3 views
1

Я в процессе переноса сайта из Wordpress на новую платформу (Craft CMS), и мне нужно настроить 301 переадресацию через .htaccess.301 перенаправить все страницы на уровне корня со списком исключений

Сообщения в блоге на старом веб-сайте находятся в корне, мне нужно перенаправить их все в папку/blog/folder (slug - то же самое). Конечно, поскольку они находятся в корневом домене, там есть куча страниц, которые не будут перенаправлены - мне нужно исключить эти (и их подстраницы) из перенаправления.

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

RewriteCond %{REQUEST_URI} !^/$ [OR] 
RewriteCond %{REQUEST_URI} !^/(blog|about-bluegg-creative|what-we-do|what-we-do|doodles|contact|legal-stuff|admin) [NC] 
RewriteRule (.*) blog/$1 [R=301,L] 

Это, вероятно, стоит отметить, что существуют и другие переадресовывает происходит в моей .htaccess поэтому решение должно играйте с ними хорошо. Вот суть соответствующих частей: https://gist.github.com/hamishtaplin/c8d5e39d4621f56038d8

ответ

2

Вы не хотите, чтобы флаг [OR]. То, что это делает, логически или двух отрицательных совпадений, что означает, что любой из них пройдет, так как вам нужно только отменить тот или иной.

Вы просто хотите:

RewriteCond %{REQUEST_URI} !^/$ 
RewriteCond %{REQUEST_URI} !^/(blog|about-bluegg-creative|what-we-do|what-we-do|doodles|contact|legal-stuff|admin) [NC] 
RewriteRule (.*) blog/$1 [R=301,L] 
+0

спасибо за ответ на. У меня есть другие вещи, которые происходят в моем .htaccess (добавлена ​​ссылка в исходном сообщении). Просто добавление исправленных кодов приводит к дальнейшему циклу перенаправления. – hamishtaplin

+0

@hamishtaplin Вы добавили это правило в начало? Он должен быть первым (или просто под перенаправлением www) –

+0

Нет, я постараюсь это завтра. Благодаря! – hamishtaplin

Смежные вопросы