2010-05-08 93 views
1

我正在开发一个使用Kohana 3的网站(第一次使用框架)。在当地,一切都很完美。目前,我有一个默认模板控制器,一个多语言支持,我的'index.php'被正确删除。所以在进一步研究之前,我测试了它是否在我的服务器上运行,并且我得到了无限循环。Ko3 - URL重写问题 - 删除index.php

我跟着从多语言实现的非官方维基教程:http://www.kerkness.ca/wiki/doku.php?id=example_of_a_multi-language_website

如果在URI中未指定的语言,所以我想通这个问题可能已经从那里来产生一个重定向到默认语言即使它在本地工作,所以我删除它看看没有重定向会发生什么。现在,我可以看到我的主页,但无论网页浏览器中的uri是什么,总是会调用主页。我在我的主视图中插入以下行来检查uri是什么: request :: instance() - > uri()并且实际上,uri总是:/ en/home/

我把索引。 PHP的后面(在引导程序),一切工作正常,即使重定向到默认语言。

我的第一个猜测是,URI没有被正确重写,所以我试图改变的.htaccess,但没有成功......

这里是我的.htaccess:

# Turn on URL rewriting 
RewriteEngine On 
# Installation directory 
RewriteBase /dev/ 
# 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)/ - [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] 

(顺便说一句我也试过在非官方维基其他重写规则,也不管用)

附加信息: 主持人:WebHostingPad的 阿帕奇:v2.2.11 PHP:5.2.9

Rewrite_Module被激活

谢谢你,我会很感激你的帮助,因为我一直在努力,现在解决这个问题了几天,它的真正开始激怒我;)

回答

1

问题从$_SERVER['PATH_INFO']它没有返回值来......

这个问题可以通过添加以下行到php.ini中解决:

cgi.fix_pathinfo=0 
3

你要的唯一的事为了摆脱URL中的index.php而进行的更改是将Kohana :: init(bootstrap.php)中的'index_file'参数设置为FALSE(其他所有内容都可能导致错误)。

所以Kohana :: init看起来像这样;

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

));

如果它与原始.htaccess一起工作,则根本不需要改变它。