这将是我喜欢的 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是不需要的application
。modules
system
开启维护模式非常简单。