Url rewriting Ko3-URL重写问题-删除index.php

Url rewriting Ko3-URL重写问题-删除index.php,url-rewriting,kohana,Url Rewriting,Kohana,我正在使用Kohana3开发一个网站(我第一次使用框架)。在当地,一切都运转良好。目前,我有一个默认的模板控制器,一个多语言支持,我的'index.php'被正确删除。因此,在进一步研究之前,我测试了它是否在我的服务器上工作,我得到了一个无休止的循环 我遵循了非官方wiki上关于多语言实现的教程: 如果uri中没有指定默认语言,则会重定向到该语言,因此我认为问题可能来自该语言,即使它在本地工作,因此我将其删除,以查看没有重定向时会发生什么。现在,我可以看到我的主页,但无论web浏览器中的uri是

我正在使用Kohana3开发一个网站(我第一次使用框架)。在当地,一切都运转良好。目前,我有一个默认的模板控制器,一个多语言支持,我的'index.php'被正确删除。因此,在进一步研究之前,我测试了它是否在我的服务器上工作,我得到了一个无休止的循环

我遵循了非官方wiki上关于多语言实现的教程:

如果uri中没有指定默认语言,则会重定向到该语言,因此我认为问题可能来自该语言,即使它在本地工作,因此我将其删除,以查看没有重定向时会发生什么。现在,我可以看到我的主页,但无论web浏览器中的uri是什么,都将始终调用主页。我在主视图中插入以下行以检查uri是什么: request::instance()->uri(),实际上,uri总是:/en/home/

我将index.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]
#启用URL重写
重新启动发动机
#安装目录
重写库/开发/
#保护隐藏文件不被查看
命令拒绝,允许
全盘否定
#保护应用程序和系统文件不被查看
重写规则^(应用程序|模块|系统)/-[F,L]
#允许直接显示现有的任何文件或目录
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
#将所有其他URL重写为index.php/URL
重写规则。*index.php/$0[PT]
(顺便说一句,我还在非官方维基上尝试了另一个重写规则,但也不起作用)

其他信息: 主持人:WebHostingPad Apache:v2.2.11 PHP:5.2.9

“重写”模块已激活


谢谢你,我真的非常感谢你的帮助,因为我已经尝试解决这个问题好几天了,现在它真的开始困扰我;)

要删除URL中的index.php,唯一需要更改的是将Kohana::init(bootstrap.php)中的'index_file'参数设置为FALSE(其他所有操作都可能导致错误)

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

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


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

要删除URL中的index.php,唯一需要更改的事情是将Kohana::init(bootstrap.php)中的'index_file'参数设置为FALSE(其他一切都可能导致错误)

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

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


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

问题来自
$\u服务器['PATH\u INFO']
,它没有返回任何值

可以通过在php.ini中添加以下行来解决此问题:

cgi.fix_pathinfo=0

问题来自
$\u服务器['PATH\u INFO']
,它没有返回任何值

可以通过在php.ini中添加以下行来解决此问题:

cgi.fix_pathinfo=0