Apache получает доступ / media / вместо DocumentRoot / media - PullRequest
0 голосов
/ 14 февраля 2012

Мой конфиг Apache имеет следующие операторы:

    DocumentRoot /home/x/public/
    <Location />
       Order Allow,Deny
       Allow from all
      Options -ExecCGI -Indexes
    </Location>

В каталоге / home / x / public /

есть каталог / media
    RewriteRule ^(/media/.+) $1 [L]

Файлы мультимедиа должны быть оставлены нетронутыми и обслуживаться Apache - остальные запросы перенаправляются на прокси-сервер Ruby on Rails.

Всякий раз, когда я пытаюсь получить доступ к файлу в / media через браузер, Apache пытается использовать / media / file (в корневом каталоге файловой системы) вместо / home / x / public / media / file

Если я переименую / media в / medias, файл / home / x / public / media / file будет обслуживаться правильно.

Как я могу предотвратить это поведение?

Редактировать: добавление журналов mod_rewrite:

Если "mv / media / / medias":

applying pattern '^(/media/.+)' to uri '/media/css/TableTools.css'
rewrite '/media/css/TableTools.css' -> '/media/css/TableTools.css'
local path result: /media/css/TableTools.css
prefixed with document_root to /home/x/public/media/css/TableTools.css
go-ahead with /home/x/public/media/css/TableTools.css [OK]

Если "mv / medias / media":

applying pattern '^(/media/.+)' to uri '/media/css/TableTools.css'
rewrite '/media/css/TableTools.css' -> '/media/css/TableTools.css'
local path result: /media/css/TableTools.css
go-ahead with /media/css/TableTools.css [OK]

1 Ответ

0 голосов
/ 14 февраля 2012

Решено путем изменения rewriterule на:

RewriteRule ^ (/ media /.+) / home / x / public / $ 1 [L]

Хотя это и ужасно, но работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...