如何为Kohana正确设置.htaccess,以避免出现“丑陋”的情况;index.php/";在URL中?

如何为Kohana正确设置.htaccess,以避免出现“丑陋”的情况;index.php/";在URL中?,php,.htaccess,kohana,Php,.htaccess,Kohana,两个小时后,我没能把它弄好 Kohana安装可直接在我的域下访问,即“ 而不是我想有像这样的网址 我的.htaccess完全搞砸了。这实际上是下载时附带的标准example.htaccess。这几乎没用。kohana页面上有一个教程“如何删除index.php”。它也真的没用,因为它甚至不会讨论如何删除它。完全令人困惑 请问,有人能为标准的kohana安装提供他的working.htaccess吗?试试这个mod_重写规则: RewriteEngine on RewriteCond %{REQU

两个小时后,我没能把它弄好

Kohana安装可直接在我的域下访问,即“

而不是我想有像这样的网址

我的.htaccess完全搞砸了。这实际上是下载时附带的标准example.htaccess。这几乎没用。kohana页面上有一个教程“如何删除index.php”。它也真的没用,因为它甚至不会讨论如何删除它。完全令人困惑


请问,有人能为标准的kohana安装提供他的working.htaccess吗?

试试这个mod_重写规则:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php index.php%{REQUEST_URI} [L]

在某些主机上,我特别认为在CGI模式下运行PHP时,必须进行更改

RewriteRule^(.*)$index.php/$1[L]

RewriteRule^(.*)$index.php?/$1[L]


在您的htaccess中。因此,基本上您可以使用,只需将
index.php/$1
替换为
index.php?/$1

这是我们的.htaccess文件,它似乎正在工作

RewriteEngine On

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

请注意,我们的应用程序、系统和模块目录都位于web根目录之外。

My htaccess与示例类似

RewriteEngine On

RewriteBase /

RewriteRule ^(application|modules|system) - [F,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule .* index.php/$0 [PT,L]
但您还必须将文件更改为:

对于那些使用default.htaccess在OSX上获得“禁止的错误”403的用户,请确保将添加为.htaccess中的第一行


选项+FollowSymLinks

Kohana 3.2有不同的约定。如果查看Kohana_URL,您会发现以下函数签名:

public static function site($uri = '', $protocol = NULL, $index = TRUE)

其中$index默认为TRUE。通过传递$index FALSE,您将删除index.php引用

这是什么意思?您是否已经阅读了“输入错误”消息(白页)。是的。他们没有谈论如何删除它,尽管标题承诺了这一点。他们在文章中完全忘记了这件事。这是一个小问题,真的,-[F,L]和[PT,L]在做什么?请参阅apache手册:“F |禁止使用[F]标志导致apache向客户端返回403禁止状态代码。”“L |最后一个[L]标志会导致mod|u rewrite停止处理规则集。在大多数上下文中,这意味着如果规则匹配,则不会处理进一步的规则。“默认情况下,在RewriteRule中传递目标(或替换字符串)假定为文件路径。”我已在application/config/config.php中将索引|页设置为“”,并使用完全相同的.htaccess。在我的URL中留下index.php/“未指定输入文件”时,我仍然收到此消息。。。非常奇怪,我不太确定,但是你可以试试科哈纳论坛上的这个帖子。这就是解决办法!我有一台非常旧的服务器;)它不起作用。两者都试过了。config.php的索引页面为“”。尽管如此,如果我将index.php/foo放在URL:/Hrm中,我仍然只能找到一个工作的控制器,“未指定输入文件”正是添加问号通常可以修复的错误。只是澄清一下,此修复程序仅用于htaccess,config.php文件中没有任何内容。
public static function site($uri = '', $protocol = NULL, $index = TRUE)