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安装吗?
答案 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引用。