全部,CakePHP:路由问题
我目前正在使用CakePHP彻底改造我现在的新闻网站。我已经或将要将所有当前的文章转移到我的新网站,并且它们将与当前网站的article_id
一样。但是,我意识到了以下问题。
我目前的网站使用以下设置为URL:
http://www.mydomain.com/?c=140&a=4388
c=
引用的类ID和a=
引用的文章ID。我的新格局(CakePHP的),我拿蛞蝓的优势,现在我的文章的网址显示为:
http://www.mydomain.com/noticia/this-is-an-article-slug
因为,我已经注意到,通webstats,我的许多文章都是通链接设置访问其他网站,如Facebook ,我认为创建一个能够帮助我解决这个问题的系统/路由将是至关重要的。
这是我想到的是:
- 创建检测类似于上面
- 提到制作的路线传递
a
值作为参数传递给重定向功能在我的文章控制器要求的路线,如articleRedirect($article_id)
此功能会再看看在数据库基础上,通过
$article_id
slug
并重定向到新的地址(见下文功能)// Function in articles controller to redirect old site's article url to // new websites url format function articleRedirect($article_id = NULL){ $this->Article->recursive = -1; $slug = $this->Article->findById($article_id); if($slug == NULL){ $this->Session->setFlash('Article not found'); $this->redirect('/noticias'); }else{ $this->redirect('/noticia/'.$slug['Article']['slug']); } }
我认为应该有效。不过,我需要一些认真的路由帮助。任何人都可以建议我可以使用的路线。
非常感谢。
我试过了,但它不起作用。重写规则可能有问题。我会继续尝试不同的事情。如果我输入www.mydomain.com/?c=135&a=1341,基本上什么都不会发生。它只是访问我的首页。 – 2012-02-11 19:12:18
@CaboONE是的,重写可能只是在%{QUERY_STRING}变量上使用RewriteCond。像'RewriteCond%{QUERY_STRING}^c = [0-9] +&a =([0-9] +)'和'RewriteRule ^// noticia /%1 /'可能会这样。 – Oldskool 2012-02-11 20:47:07
我仍然无法做到。我发布了我决定使用的解决方案... – 2012-02-12 22:49:39