1

Kohana フレームワークを使用して新しい Web アプリケーションをセットアップしています。

私はMAMPを使用しているため、アプリは次のhtdocs構造のフォルダーにあります。

---htdocs
 --foo
  -application

表示時にこのエラーが発生しますhttp://localhost:8888/foo/

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

ルートにbootstrap.phpはデフォルトの Kohana 1 があります

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

2 に答える 2

2

application/bootstrap.phpファイルを確認してください:

Kohana::init(array(
    'base_url'   => '/foo/',
));

これは、Kohana が/foo/フォルダー内にあることを理解するために必要です。

コントローラーでメソッドが見つからない場合、 UPDThe requested URL foo was not found on this server例外メッセージが生成されます。action_<action>

ルートが見つからない場合、Unable to find a route to match the URI:例外メッセージが生成されます。

ルーティングが期待どおりに機能するかどうかはわかりませんが、機能します;)。

そのため、適切なアクション方法についてコントローラーファイルを確認してください。

于 2013-11-03T13:05:19.487 に答える
0

これは、以下の Kohana アプリケーションの好ましいフォルダー構造です/foo

├─┬─ htdocs
│ └─┬─ foo
│   ├─── .htaccess
│   └─── index.php
└─┬─ kohana
  ├─┬─ application
  │ ├─── bootstrap.php
  │ └─── etc...
  ├─┬─ modules
  │ └─── etc...
  ├─┬─ system
  │ └─── etc...
  ├─── index.php
  ├─── install.php
  └─── etc...

htdocs/foo/index.php:

<?php

require '../../kohana/index.php';

htdocs/foo/.htaccess:

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /foo/

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

# 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]

kohana/application/bootsrap.php で「base_url」を foo に設定します。

Kohana::init(array(
        'base_url' => '/foo/',
        'index_file' => NULL,
));

kohana/install.php を実行したい場合は、htdocs/foo/install.php を作成し、require '../../kohana/install.php';

このようにして、htdocs をきれいに保ちます。ライブサーバーが何らかの理由で PHP ファイルの処理を停止した場合、人々が目にする唯一のものは、Kohana のindex.php.

applicationmodulesおよびフォルダーの RewriteCondsystemは必要ありません。

メンテナンスモードをオンにするのはとても簡単です。

于 2013-11-03T13:53:30.287 に答える