2011-02-07 65 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