我的Apache配置包含以下语句:
DocumentRoot /home/x/public/
<Location />
Order Allow,Deny
Allow from all
Options -ExecCGI -Indexes
</Location>
/media目录位于/home/x/public/下
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]
发布于 2012-02-14 19:21:42
通过将rewriterule更改为:
RewriteRule ^(/media/.+) /home/x/public/$1 L
虽然丑陋,但它是有效的。
https://stackoverflow.com/questions/9275539
复制相似问题