2012-02-14 80 views
0

我的Apache配置有如下語句:Apache的訪問/媒體/替代的DocumentRoot /媒體

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

有一個目錄/在/ home/X /公/

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

媒體媒體文件應該保持不變並由Apache提供 - 其他請求被重定向到Ruby on Rails代理服務器。

每當我試着通過瀏覽器訪問/ media下一個文件,Apache的嘗試投放/媒體/文件(在filestystem根目錄),而不是將/ home/X /公/媒體/文件

如果我將/ media重命名爲/ medias,文件/ home/x/public/media/file正確地提供。

如何防止此行爲?

編輯:添加mod_rewrite的日誌:

如果 「MV /媒體/ /媒體」:

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 /媒體/媒體」:

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] 
+0

添加Alias/media/home/x/public/media不能解決問題。 – 2012-02-14 11:18:57

回答

0

通過改變解決改寫爲:

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

雖然很醜,但它的工作原理。