2010-06-08 59 views
2

我正在我的本地apache服務器上運行Kohana設置。我創建了一個'htdocs'文件夾,其中包含kohana目錄中的index.php文件。以便系統文件不可供訪客使用。現在,我不想每次訪問另一個控制器時從URL中刪除index.php,所以我試圖用提供的.htaccess混淆,但無法使其工作。有人在這裏有一些技巧嗎?。Kohana 3.0中的.htaccess規則?

.htaccess文件:

# Turn on URL rewriting 
RewriteEngine On 

# Installation directory 
RewriteBase/

# 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)\b.* index.php/$0 [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] 

該文件放置在目錄Kohana的。顯然我只是應該改變RewriteBase變量,但我不知道它應該是什麼

回答

2

RewriteBase基本上是你到達的URL。

例如,如果index.php的網址爲http://yoursite/kohana/index.php,您可以將RewriteBase設置爲/ kohana。

您可以找到的文檔mod_rewrite的位置:http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

+0

感謝您的鏈接。儘管你的提示並不適合我。我的kohana目錄的地址是:http:// localhost/kohana/htdocs,.htaccess位於kohana文件夾中,那麼它應該是'RewriteBase/kohana/htdocs'嗎? (這是行不通的) – 2010-06-08 20:52:27

+1

對不起,我也不是mod_rewrite大師,但是如果你可以到達你的index.php文件,比如'http:// localhost/kohana/htdocs/index.php',RewriteBase應該是/ kohana/htdocs據我所知。 – svens 2010-06-08 20:59:38

1

把它留給htaccess的,因爲它來自於包裝。你的錯誤被遺忘在bootstrap中的配置設置。對於位於http://localhost/kohana/中的站點,配置設置將爲:

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