2010-11-11 55 views
0

我的路由設置是這樣的:如何讓Kohana調用特定的控制器?

http://localhost/et/testkohana4/

電話action_indexController_Static,因爲它應該:

Route::set('default', '(<controller>(/<action>(/<id>)))') 
->defaults(array(
    'controller' => 'static', 
    'action'  => 'index', 
)); 

這樣在打字。

然而,當我輸入:

http://localhost/et/testkohana4/test

我希望它說: 「找不到Controller_Test」 而是Kohana的懷念它,我得到一個Apache消息「在此服務器上未找到請求的URL /testkohana4/index.php/test。

即使當我p在controller目錄下名爲test.php的文件中,並且其中的類Controller_Test在我仍然出現頁面未找到錯誤。

當我在URL中輸入名稱時,如何讓Kohana調用特定的控制器?

回答

2

編輯:如在此提供正確的解決辦法回答的意見是對的.htaccess RewriteBase值更改爲

RewriteBase /et/testkohana4/ 

(<controller>(<action>(/<id>))) 

有一個在你的路線是錯誤的。 (<action> ...開頭沒有正斜槓應該是(/<action> ...

那些<blocks>是URL中的動態段。因此,在這個例子中:

http://localhost/et/testkohana4/test 

將導致此被稱爲:

  • 控制器:等
  • 行動:testkohana4
  • ID:測試

這應該適合你。希望有所幫助。

+0

即使當我把斜槓,我仍然得到「未找到:在此服務器上找不到請求的URL /testkohana4/index.php/news」。我將'.htaccess'文件改回到'example.htaccess',但是這也沒有任何效果。我之前有過這樣的工作,有什麼可能導致Kohana不把我的基URL作爲控制器名稱後的文本? – 2010-11-11 14:05:18

+0

這聽起來像一個Apache重寫問題。我是否正在考慮將Kohana文件放在子目錄/ et/testkohana4中?如果是這樣,那麼你將需要修改RewriteBase變量爲「/ et/testkohana4 /」 – 2010-11-11 14:09:29

+0

謝謝,就是這樣,我將'.htaccess'中的行改爲'RewriteBase/et/testkohana4 /',它可以工作。 – 2010-11-11 14:14:18