Изменение url для блога

Нужно сделать, что бы ссылки типа my-blog.ru/blog/4.html
Открывались по новому адресу my-blog.ru/blog/post/4.html
Как это сделать?
Я пробовал так:
В config.route.php я добавил define(«ROUTE_PAGE_BLOG»,'blog/post'); ROUTE_PAGE_BLOG => 'ActionBlogPost', после чего ссылки имеют нужный вид но как теперь в class ActionBlogPost extends Action изменить $this->AddEventPreg('/^[\w\-\_]+$/i','/^(\d+)\.html$/i','EventShowTopic');
что бы срабатывал нужный контролер, а то сейчас получаю сообщение об ошибке 404

2 комментария

avatar
define(«ROUTE_PAGE_BLOG»,'blog');

в ActionBlog вместо $this->AddEventPreg('/^[\w\-\_]+$/i','/^(\d+)\.html$/i','EventShowTopic'); назначить ивент как $this->AddEvent('post','EventShowTopic');

в функции ивента EventShowTopic код для определения айди топика
if (preg_match("/^(\d+)\.html$/i",$this->getParam(0),$aMatch)) {			
	$iTopicId=$aMatch[1];
} else {
	return parent::EventNotFound();
}
avatar
А как быть с персональным блогом, года url имеет вид my-blog.ru/blog/personal_blog/4.html
А вообще можно сделать так что бы ссылки
my-blog.ru/blog/
my-blog.ru/ log/ bad/
my-blog.ru/ top/ bad/
my-blog.ru /top/topic/all/
имели вид
my-blog.ru/blog/
my-blog.ru/blog/ log/ bad/
my-blog.ru/ blog/top/ bad/
my-blog.ru / blog /top/topic/all/
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.