Совместное использование статических файлов из каталога, который разделяет имя с контроллером - PullRequest
0 голосов
/ 08 февраля 2011

Я использую kohana 3 для проекта и имею контроллер / foo с различными действиями (/ foo / about, / foo / features и так далее).Однако недавно мне дали пару папок с довольно большим html-сайтом для размещения в этом каталоге, включая html / txt / picture files.Теперь у меня есть структура, которая выглядит следующим образом:

  • kohana / foo / help / index.html
  • kohana / foo / help_de / index.html
  • kohana /foo / 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 голосов
/ 08 февраля 2011

Ссылка /foo прерывается этой строкой:

RewriteCond %{REQUEST_FILENAME} !-d

, поскольку /foo рассматривается как каталог.Возможно, вы могли бы просто удалить эту строку, если вы не беспокоитесь о потере индексов каталога.

0 голосов
/ 08 февраля 2011

Я не знаю kohana, но я думаю, что он может работать, если вы добавите в свой .htacess после "RewriteEngine on" 2 строки:

ПереписатьEngine на

RewriteCond% {REQUEST_FILENAME}! -F # Исключить файлы RewriteCond% {REQUEST_FILENAME}! -D # Исключить каталоги

Это исключит файлы и каталоги из обработанных beign.

...