2012-11-07 103 views
0

我正在CakePhp上開發網站,我有下一個網址問題。CakePhp中的漂亮seo網址

在我的應用程序的類別和子頁面,我需要有下一個網址:

  • /類別 - 塞/
  • /類別 - 塞/子類別 - 塞

和問題是:這種格式的URL與任何控制器/動作 URL匹配,我不能只是硬編碼所有類別/子類別的URL,因爲它們中有很多,而且它們是動態的。

這是怎麼解決的?

編輯

我發現這種方法http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp,但也許存在一些不要求分貝額外的檢查,高速緩存等?

回答

1

最快/最簡單的方法:

// routes.php 
Router::connect('/category/:category/:subcategory', 
        array('controller'=>'categories', 'action'=>'view'), 
        array('pass' => array('category', 'subcategory'))); 

// CategoryController/view 
public function view($category = 'default', $subcategory = null) { 
    // your logic here 
} 

// links 
$this->Html->link('View PHP >> Tutorials', array('action'=>'view', 
         'category'=>'php', 'subcategory'=>'tutorials')); 

// output 
<a href="/category/php/tutorials">View PHP >> Tutorials</a> 

通過在開始介紹/category/,你並不需要擔心的所有其他控制器/動作(否則每個請求都會被髮送到提供路由你類別控制器。

+0

感謝,但是我正在尋找解決方案,而之前或之後「/類別/子類別」,這是一個商業項目,並且此類URL的網站的一個非常重要的部分URL的任何其他部分。 – Vovkin

+1

[此(http://lecterror.com/articles/view/advanced-routing-with-cakephp-one-example)可能對你有些用處;但除此之外,我不知道任何其他方式來實現這一點,而不提供每一個可能的請求的路線。 – Ross

+0

謝謝,它看起來像我在找什麼 – Vovkin