从Kohana 3中的URI中删除“/ index /”

时间:2011-04-14 18:58:08

标签: kohana kohana-3

截至目前,我的所有控制器都映射如下:

  • http://example.com/index/index
  • http://example.com/index/services
  • http://example.com/index/contact

我想要做的是将URI的配置更改为:

  • http://example.com/index
  • http://example.com/services
  • http://example.com/contact

这是我的.htaccess文件

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /

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

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

我的bootstrap.php有以下内容:

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

如何实现这一目标?

2 个答案:

答案 0 :(得分:3)

您的.htaccess代码看起来很好。检查您的Apache配置是否正常: Kohana URL rewriting

此外,您需要编辑application / bootstrap.php并在那里设置初始化变量。

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

您可能需要查看用户指南,有一个页面仅用于此设置。

http://kohanaframework.org/3.0/guide/kohana/tutorials/clean-urls

答案 1 :(得分:0)

我假设您在Controller_Index中使用action_index,action_services和action_contact。

如果是这样,您需要做的就是从路径中删除控制器部分(在bootstrap.php中)

Route::set('posttype', '<param>', array('action' => 'index|services|contact'))
  ->defaults(array(
  'controller'=> 'index',
  'action' => 'index'
  ));