Изменить постоянные ссылки - необходим код htaccess - PullRequest
0 голосов
/ 19 февраля 2012

У меня есть блог (WordPress версии 3.01), который имеет пользовательские постоянные ссылки в следующем формате: /%category%/%postname%/. Например, blog.com/category/post-name/.

Мне нужно изменить постоянные ссылки на «День и имя» /%year%/%monthnum%/%day%/%postname%/ (моя тема требует, чтобы это работало должным образом).

Что мне нужно написать в моем файле .htaccess, чтобы сделать старые постоянные ссылки 301 перенаправленными на новые?

Моему сайту 9 месяцев и около 500 статей.


Пример

/% category% /% postname% / to /% postname% /

RedirectMatch 301 ^ / ([^ /] +) / ([^ /] +) / $ http://www.mydomain.com/$2

Мой случай, чтобы получить это

/% category% /% postname% / to /% year% /% monthnum% /% day% /% postname% /

RedirectMatch 301 ???????????

1 Ответ

0 голосов
/ 19 февраля 2012

Вы не можете сделать это с файлом .htaccess в качестве функции перезаписи (RewriteMap), которая может сделать это, не работает в контексте .htaccess. Однако, поскольку у вас есть закрытый список и, следовательно, фиксированный список категорий, просто сопоставить их с общим сценарием перенаправления:

RewriteEngine On
RewriteBase   /

RewriteRule ^(cat1|cat2|cat3|cat4)/.*?/$ redirector.php?cat=$1&post=$2 [L,QSA]

(расширение списка кошек до полного списка категорий). Тогда redirector.php - это стандартный шаблон перенаправителя. Вы просто запрашиваете свой Wordpress D / B, чтобы определить YMD для публикации, чтобы выпустить

$server  = $_SERVER['HTTP_HOST'];
header( "Location: HTTP://$server/$year/$month/$day/$postName/", true, 302 );

перед выходом.

...