2012-12-07 94 views
1

嗨,我有我的Kohana代碼有問題它讓我同樣的錯誤,我認爲有一個問題htaccess的或引導Kohana中找不到網址

它安裝在我的根目錄而不是作爲一個子文件夾。

Kohana_HTTP_Exception [ 404 ]: The requested URL/was not found on this server. 

SYSPATH/classes/Kohana/Request/Client/Internal.php [ 79 ] 

74   if (! class_exists($prefix.$controller)) 
75   { 
76    throw HTTP_Exception::factory(404, 
77     'The requested URL :uri was not found on this server.', 
78     array(':uri' => $request->uri()) 
79    )->request($request); 
80   } 
81 
82   // Load the controller using reflection 
83   $class = new ReflectionClass($prefix.$controller); 
84 

    SYSPATH/classes/Kohana/Request/Client.php [ 114 ] » Kohana_Request_Client_Internal->execute_request(arguments) 

    SYSPATH/classes/Kohana/Request.php [ 990 ] » Kohana_Request_Client->execute(arguments) 

    DOCROOT/index.php [ 109 ] » Kohana_Request->execute() 

這裏是我的htaccess代碼

# Turn on URL rewriting 
RewriteEngine On 

# Installation directory 
RewriteBase/

# Protect hidden files from being viewed 
<Files .*> 
    Order Deny,Allow 
    Deny From All 
</Files> 

# Protect application and system files from being viewed 
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L] 

# Allow any files or directories that exist to be displayed directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# Rewrite all other URLs to index.php/URL 
RewriteRule .* index.php/$0 [PT] 

#-SetEnv KOHANA_ENV "production" 

,並在引導我有SITE_URL設置爲 '/'

回答

0

這個異常被扔,因爲沒有找到控制器。默認情況下,'/'URI表示調用方法action_index()Controller_Welcome。見bootstrap.phpRoute::set('default', ...)

我認爲,可能有以下原因:

  1. 你有默認路由,並application/classes/Controller/Welcome.php被刪除。
  2. 將Kohana版本升級到v3.3時,您並未用application替換新文件夾。所以,你有application/classes/controller/welcome.php而不是application/classes/Controller/Welcome.php
  3. 您已經使用不存在的控制器更改了默認路由。請注意,Kohana v3.3有新的file/class naming conventions
1

請嘗試發佈大部分bootstrap.php文件。有可能你沒有默認的根集。您的文件中

搜索一個代碼塊,看起來像

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

關鍵字是Route::set('default', '(<controller>(/<action>(/<id>)))')

哪裏是你的應用程序託管?它在www上還是在www的子文件夾中?

4

當我將kohana從localhost移動到linux主機時,我遇到了同樣的問題。

嘗試用大寫字母重命名控制器文件。在自舉路線中保留小寫字母。

它幫助了我。

1

你所看到的是當你還沒有set up your environment to run for the first time to use clean urls時拋出的錯誤。這樣做:

  1. 進入你.htaccess文件,並設置了正確的路徑RewriteBase 如果你的本地主機所在的路徑localhost/my/site,你的htaccess應該是:

    RewriteBase /localhost/my/site/

    (請確保您重命名所以它只能叫.htaccess

  2. 進入你的引導程序。php文件並確保Kohana::init有:

    'base_url' => '/localhost/my/site/'在它的數組中。

  3. 裏面/application/classes/Controller/目錄,添加控制器文件名的文件,以使第一個字母大寫(即Welcome.php)和控制器內,請確保您的控制器內容被正確寫入。

    /application/classes/Controller/Welcome.php

這是朝着解決問題的良好開端。