0

Kohana 3.3サイトを展開するためのソリューションに導くことができるソリューションまたは何かを求めてグーグルで検索しましたが、役に立ちませんでした。

Kohanaでルーティングを機能させる方法について混乱しています.bootstrap.phpファイルのデフォルトルートをそのまま残しました。ここ:

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

私は無料の Web ホスティングとサブドメインを使用しています。私の URL はhttp://atosoft.neq3.com/です。そして、上記のルートで「hello、world」をうまく出力します。

しかし、自分の管理ページに移動しようとすると、ここで ERROR 500 が表示されます: http://atosoft.neq3.com/admin。これをすべてのコントローラーで機能させるには、どうすればルートを設定できますか?

ビューだけに、コントローラーとモデルにサブディレクトリがありません。

私のフォルダ構造は次のとおりです。

/Controller
   - Admin.php
   - Courses.php
   - Exams.php
   - Questions.php
   - Semester.php
   - User.php
   - Welcome.php

コントローラー/admin.php

class Controller_Admin extends Controller_Template {

    public $template = 'admin_template';

    public function action_index() {
        // User authentication
        $user = Auth::instance()->get_user();

        if(Auth::instance()->logged_in()) {
            // Display Dashboard here
            $dashboard = View::factory('admin/index');
            $this->template->user = $user;
            $this->template->content = $dashboard;
        } else {
            HTTP::redirect('user/login');
        }
    }
}

.htaccess

    # Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /atosoft.neq3.com/

# 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]
RewriteRule ^(application|modules|system)/ - [F,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]
RewriteRule .* index.php [PT]
4

1 に答える 1

1

RewriteBase が間違っています。これはナレッジ ベースからのものです。

検索エンジンに適した URL をサポートしていますか?

はい、検索エンジンに適した URL はサポートされていますが、知っておくべき重要なことが 1 つあります。仮想ユーザー ディレクトリ パスを使用しているため、検索エンジンに適した URL を設定しようとしたり、仮想ディレクトリ名を PHP スクリプトに渡そうとしたりすると、エラーが発生する可能性があります。非常に簡単に修正できる場合。.htaccess ファイルを編集して、ファイルの先頭または最初の書き換えルールの前に次の行を追加します。

RewriteBase /

注: スクリプトが /forum などのディレクトリにインストールされている場合は、RewriteBase /forum/ 行を .htaccess ファイルに配置する必要があります (.htaccess ファイルも /forum ディレクトリに配置する必要があります)。

それに加えて、Kohana 3.3 では PSR-0 のサポートも導入されました。したがって、APPPATH/classes/ にあるすべてのファイルを確認し、必要に応じて名前を変更してください。例:APPATH/classes/Controller/admin.phpである必要がありますAPPPATH/classes/Controller/Admin.php

それだけです。kohana フォルダーが現在フォルダー内にある/public_html場合は、それについて何かしたいと思うかもしれません。できるだけ多くのファイルを Web ルートの外に置くことをお勧めします。

于 2013-10-26T13:04:39.153 に答える