2014-01-30 57 views
2

我想處理一個控制器的所有請求,我有我的數據庫路徑CodeIgniter的內部重定向

$route['(:any)'] = 'links/index/$1'; 

和表(下圖)

Image

所以當URL是mydomain .com/first-article我正在從數據庫控制器,操作和table-id中進行選擇,並且我想重定向到articles控制器,文章操作和傳遞table_id。 我該怎麼辦?

此外,我需要保持URL

mydomain.com/first-article

然後我用重定向重定向()我得到錯誤:

ERR_TOO_MANY_REDIRECTS, because of $route['(:any)'] = 'links/index/$1'; 
+0

你應該用一個htaccess文件來處理這個重定向 – xbonez

+0

你能舉一個小例子嗎? –

回答

1

我必須說實話,我不惹路線。相反,我抓住與URI-URL的一部分>段

只是一個想法爲你

//example 
//linksid 
    $links_id = intval($this->uri->segment(3, 0)); 

所以http://www.mydomain.com/mycontroller/go/1會抓住1,然後我可以從那裏重定向...

1

無限重定向發生在您的路由配置中。你的路由規則是

$route['(:any)'] = 'links/index/$1'; 

這意味着域名後什麼都來執行鏈路控制器index動作。例如,假設UR1是http://www.mydomain.com/articles/article,CI將執行鏈接控制器索引函數articles作爲參數。並且在鏈接控制器中,您獲取數據庫並重定向到另一個控制器。但由於路由配置,鏈接控制器將再次執行。所以變成了重定向循環。

,如果你需要的文章控制器來執行,你必須添加它上面的另一個規則如下圖所示:

$route['articles/article/(:any)'] = 'articles/article/$1'; 

我建議首先你要在你的URL模式一個很好的想法,然後寫的路由。

+0

但我想要這樣的網址結構:domain.com/my-article或domain.com/my-products或domain.com/user-name。結構相同,但控制器和行爲是不同的。 –

+0

如果您決定使用網址後綴或前綴,例如我的文章,說所有文章都會有後綴'-article',那麼您可以編寫'$ routes ['(:any)-article'] ='articles/article/$ 1''。我希望你明白我的觀點 –