2011-02-07 103 views
0

我對項目使用kohana 3並使用各種操作(/ foo/about,/ foo/features等等)來控制器/ foo。但是,最近我剛剛給了一個帶有相當大的html網站的文件夾,放在這個目錄中,包括html/txt /圖片文件。我現在有一個看起來像這樣的從與控制器共享名稱的目錄共享靜態文件

  • 的Kohana /富/幫助/ index.html的
  • 的Kohana /富/ help_de/index.html的
  • 的Kohana /富/ help_es/index.html的
  • 結構

等..

我的應用程序提供這些文件只是完美的,但是,當我去到/ foo的控制器 - 它不再起作用。我可以通過編輯我的htaccess文件是這樣解決這個問題:

RewriteRule ^(?:application|modules|system|foo)\b.* index.php/$0 [L] 

然而,這時,我的靜態文件沒有得到服務。我可以做些什麼來提供靜態文件(如果存在),但是默認情況下返回到我的控制器/操作(如果它們不存在)?

我一直在試圖編輯htaccess只從文件夾列表提供文件,但無法弄清楚這樣做的正確方法。

請讓我知道,如果我必須更具描述性。

謝謝 -

編輯(全的.htaccess):

RewriteEngine On 
RewriteBase/
<Files .*> 
    Order Deny,Allow 
    Deny From All 
</Files> 
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php/$0 [PT] 

回答

0

/foo鏈路正在由這條線破:

RewriteCond %{REQUEST_FILENAME} !-d 

由於/foo被看作是一個目錄。只要您不擔心丟失目錄索引,您可能只需刪除該行即可。

0

我不知道Kohana的,但我想,如果你在你的.htacess後 「RewriteEngine敘述上的」 2行添加它可以工作:!

RewriteEngine敘述上

的RewriteCond%{} REQUEST_FILENAME -f #Exlude文件 的RewriteCond%{} REQUEST_FILENAME -d #Exlude目錄

這將排除文件和目錄被處理的信號。

+0

啊,是的 - 我已經有了。我想我應該在原文中輸入完整文件 – x0xMaximus 2011-02-08 00:27:29