如何正确设置Kohana的.htaccess,以便URL中没有丑陋的“index.php /”?

时间:2009-06-08 19:09:56

标签: php .htaccess kohana

2小时后,我无法正确行事。

Kohana安装可直接在我的域名下访问,即“http://something.org/

而不是http://something.org/index.php/welcomde/index我希望拥有http://something.org/welcome/index

这样的网址

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

请有人可以提供他的工作.htaccess进行标准的kohana安装吗?

7 个答案:

答案 0 :(得分:9)

我的htaccess看起来像是一个例子。

RewriteEngine On

RewriteBase /

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

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

RewriteRule .* index.php/$0 [PT,L]

但您还必须将config.php文件更改为:

$config['index_page'] = '';

答案 1 :(得分:5)

这是我们的.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根目录之外。

答案 2 :(得分:3)

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

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

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

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

即可

答案 3 :(得分:2)

试试这个mod_rewrite规则:

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

答案 4 :(得分:1)

对于那些在OSX上使用默认.htaccess获得“禁止错误”403的人,请务必添加为.htaccess中的第一行

选项+ FollowSymLinks

答案 5 :(得分:0)

我建议你看一下这个链接:http://codeigniter.com/wiki/mod_rewrite/

鉴于Kohana是CodeIgniter的一个分支,你可以解决这个问题;它对我有用(在CodeIgniter上)。

答案 6 :(得分:0)

Kohana 3.2有不同的约定。如果您查看Kohana_URL,您将找到以下函数签名:

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

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