2016-11-07 4 views
0

Мы переносим наш сайт из Wordpress в другой блог, и мы ищем способ перенаправить всех пользователей, используя «старую» структуру URL/blog/date/title, в новую/Название блога. Есть более 2000 сообщений, поэтому мне действительно не нужно было делать это вручную!Перенаправление даты Wordpress в папку

Например, текущий URL может быть:

http://www.example.com/blog/2013/06/this-is-the-title/ 

, и мы хотели бы, чтобы перенаправлены:

http://www.example.com/blog/this-is-the-title/ 

структура всегда будет

/blog/yyyy/mm/title 

Можно игнорировать часть URL-адреса, используя htaccess, или это нужно сделать, используя regex, ища шаблон даты?

ответ

2

Успение, не может быть одинакового слизняка для двух разных постов, что, по моему мнению, является данным в wordpress.

Off верхней части моей головы, есть 2 способа вы можете сделать это:

1: Используйте простой Htaccess перенаправляют для этого. Теперь, я не являюсь экспертом в Htaccess, но я думаю, что его что-то вроде этого:

RewriteRule ^blog/(\d{4})/(\d{2})/(.+)$ /blog/$3 [L] 

2: Это один, это немного сложнее, но может получить гибкие результаты в соответствии с вашими потребностями. Поскольку старые URL-адреса не существуют, они приводят к странице 404. Теперь сделайте эту страницу 404 таким образом, чтобы в ней вы искали сообщение. Если вы найдете совпадение, перенаправите пользователя на эту страницу, не получив статус 404. Если их нет, вы можете показать им самые популярные/наиболее похожие результаты и т. Д. И т. Д. Я не понимаю, почему люди делают это чаще. Отображение предложений, основанных на вашем запросе, должно распространяться на странице 404.

Дайте мне знать, если вам нужна дополнительная помощь.

+0

Первый вариант работал лакомство, большое спасибо – bhttoan

1

Вы можете использовать это правило переадресации в качестве первого правила в корне сайта .htaccess на старом сайте:

RewriteEngine On 

RewriteCond %{REQUEST_URI} ^/(blog)/\d+/\d+/(.+)$ [NC] 
RewriteRule^/%1/%2 [L,R=301,NE] 
Смежные вопросы