我一直在谷歌搜索一个解决方案或某些东西,可以指导我部署我的Kohana 3.3网站的解决方案,但无济于事。
我对如何使路由在Kohana中工作感到困惑,我在bootstrap.php文件中完整地保留了默认路由。这里:
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'welcome',
'action' => 'index',
));
我正在使用免费的网络托管和子域名,这是我的网址:http://atosoft.neq3.com/。用上面的路线输出“你好,世界”就好了。
但是当我想进入我的管理页面时,我在这里得到一个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]
答案 0 :(得分:1)
你的RewriteBase错了。这来自知识库:
您是否支持搜索引擎友好的网址?
是的,支持搜索引擎友好的URL,但有一个 你必须知道的重要事情:我们使用虚拟用户目录路径,所以 尝试设置搜索引擎友好的URL或时,您可能会收到错误 尝试将虚拟目录名称传递给PHP脚本。如果可以修复 很容易。编辑.htaccess文件并在顶部添加此行 该文件或第一次重写规则之前:
RewriteBase /
注意:例如,如果您的脚本安装在某个目录中 /论坛,你必须将RewriteBase / forum / line放到.htaccess 文件(.htaccess文件也必须位于/ forum目录中)
除了Kohana 3.3 also introduced support for PSR-0.之外,请浏览APPPATH / classes /中的所有文件,并在必要时重命名。例如:APPATH/classes/Controller/admin.php
应为APPPATH/classes/Controller/Admin.php
。
那应该是它。如果您的kohana文件夹当前位于/public_html
文件夹中,您可能想要对此执行某些操作。在可能的情况下,将尽可能多的文件放在Web根目录之外是个好主意。