从与控制器共享名称的目录共享静态文件

时间:2011-02-07 23:03:51

标签: php .htaccess apache2 kohana kohana-3

我正在使用kohana 3进行项目,并且有一个带有各种动作的控制器/ foo(/ foo / about,/ foo / features等等)。但是,我最近刚给了一个带有相当大的html网站的文件夹,放在这个目录中,包括html / txt / picture文件。我现在有一个看起来像这样的结构

  • kohana / foo / help / index.html
  • kohana / foo / 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]

2 个答案:

答案 0 :(得分:0)

我不知道kohana,但我想如果你在“RewriteEngine on”2行后添加你的.htacess就可以了:

上的RewriteEngine

RewriteCond%{REQUEST_FILENAME}!-f #Exlude files RewriteCond%{REQUEST_FILENAME}!-d #Exlude目录

这将从beign处理中排除文件和目录。

答案 1 :(得分:0)

此行正在破坏/foo链接:

RewriteCond %{REQUEST_FILENAME} !-d

因为/foo被视为目录。您可以删除该行,只要您不担心丢失目录索引。