Показать файлы из другого каталога с помощью mod_rewrite - PullRequest
0 голосов
/ 05 августа 2010

Я переместил все файлы из проекта, которые должны быть доступны извне, в один каталог public, чтобы вместо внесения в черный список каталогов, которые должны оставаться скрытыми, я мог внести в белый список доступные.

Однако яне может заставить apache переписать этот вид URL:

  • www.example.com / images / flower.jpg

для получения

  • <DOCUMENT ROOT> / public / images / flower.jpg

Единственное рациональное решение, которое я нашел, было чем-то из этих строк:

RewriteCond public\/%{REQUEST_FILENAME} -f #if a file exists in the public dir,...
RewriteRule .* public/$0 [L]               #display it

Неудивительно, чтоона не работает, точнее, часть RewriteCond, я не могу ее найти.

Я в полном недоумении, кто-то может помочь?

Как побочный вопрос,как вы отлаживаете .htaccess конфигурации?Я не могу решить проблему, если я не знаю, что и где это.

1 Ответ

1 голос
/ 05 августа 2010

Если вы хотите проверить существующий файл с -f, вам нужно указать абсолютный путь к файловой системе, например:

RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule !^public/ public%{REQUEST_URI} [L]

В противном случае используйте -F для проверки через подзапрос:

RewriteCond public%{REQUEST_URI} -F
RewriteRule !^public/ public%{REQUEST_URI} [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...