全部,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