2009-11-06 2 views
1

Я переношу пользовательский закодированный блог в Wordpress и должен настроить перенаправление, которое будет обрабатывать все сообщения в блоге.Проблема с передовым перенаправлением .htaccess

мне нужно перенаправить из этого:

/oldblogdirectory/Old_Blog_Posts_Looked_Like_This.htm

к:

/newblogdirectory/New-блог-сообщений-Look-как-это/

Любые идеи о регулярном выражении для такого перенаправления?

+0

Ваш вопрос слишком расплывчатый. должен быть некоторый идентификатор в старом URL, который мы можем передать новому URL-адресу, например. post id, date/time – mauris

ответ

2

Подход Гумбо - это, конечно же, способ сделать это. Я сделал два тестовых каталога:

oldblogdir/archives/blog_posts_look_like_this.htm 
newblogdir/archives/blog-posts-look-like-this 

И следующие RewriteRules перенаправляются успешно. Они лишь слегка изменили на предложение илистого по:

RewriteEngine on 
RewriteBase/

RewriteRule ^(oldblogdir/archives/[^_]*)_(.*) $1-$2 [N] 
RewriteRule ^oldblogdir/archives/(.*?)\.htm$ newblogdir/archives/$1 [R,NC,L] 

Обратите внимание, что [N] вызывает файл .htaccess не будет повторно оценен, пока RegEx больше не соответствует. Поэтому вы должны поместить его в самую верхнюю часть файла.

+0

Это вызовет бесконечную рекурсию. – Gumbo

+2

Не понимаю почему. Можете ли вы привести пример URL-адреса, который приведет к бесконечной рекурсии? – Pascal

2

Попробуйте это mod_rewrite правила:

RewriteEngine on 
RewriteRule ^(oldblogdirectory/[^_]*)_([^_]*)_(.*) /$1-$2-$3 [N] 
RewriteRule ^(oldblogdirectory/[^_]*)_(.*) /$1-$2 
RewriteRule ^oldblogdirectory/(.+)\.htm$ /newdirectory/$1/ [L,R=301] 

Но для прописных и строчных букв преобразования, вы будете должны отображение вроде internal tolower function или вы используете PHP для обоих.

+0

Это не работает. Какие-либо предложения? – TWLATL

+0

@SerpicoLugNut: Можете ли вы рассказать об этом? – Gumbo

+0

Когда я его использую, он не дает желаемого эффекта перенаправления старого расположения сообщений на новое. Я помещаю это в свой корень .htaccess. Для справки, структура сайта такова: старый: mydomainname.com/oldblogdir/archives/old_blog_posts_look_like_this.htm новые: mydomainname.com/newblogdir/archives/new-blog-posts-look-like-this/ и я изменяю файл .htaccess, расположенный здесь: mydomainname.com/.htaccess – TWLATL

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