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 一个

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/文件夹中。

如果在 Controller 中未找到The requested URL foo was not found on this server任何方法,则会生成UPD异常消息。action_<action>

如果没有找到路由,Unable to find a route to match the URI:则会生成异常消息。

不舒尔路由按预期工作,但它工作;)。

因此,请检查您的 Controller 文件以获取适当的操作方法。

于 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 并要求 '../../kohana/install.php';

这样你就可以保持你的 htdocs 干净。如果您的实时服务器由于某种原因停止处理 PHP 文件,那么人们唯一会看到的是对 Kohana 的index.php.

和文件夹的 RewriteCond是不需要的applicationmodulessystem

开启维护模式非常简单。

于 2013-11-03T13:53:30.287 回答