将Drupal文件目录重写为子文件夹

将Drupal文件目录重写为子文件夹,drupal,.htaccess,mod-rewrite,Drupal,.htaccess,Mod Rewrite,我正在将两个Drupal站点“合并”为一个多站点安装。但其中一个站点的文件保存在/files,而另一个站点的文件保存在/files/site-2(实际上是指向/sites/site-2/files的符号链接)。现在我正在寻找一种方法来“合并”它们,而不丢失我的站点-1的url结构,即我想要的 http://site-1.com/files显示http://site-1/files/site-1 并保持http://site-2.com/files/site-2原样 我想这可以通过一个简单的.ht

我正在将两个Drupal站点“合并”为一个多站点安装。但其中一个站点的文件保存在
/files
,而另一个站点的文件保存在
/files/site-2
(实际上是指向
/sites/site-2/files
的符号链接)。现在我正在寻找一种方法来“合并”它们,而不丢失我的站点-1的url结构,即我想要的

http://site-1.com/files
显示
http://site-1/files/site-1

并保持
http://site-2.com/files/site-2
原样

我想这可以通过一个简单的.htaccess mod_重写操作来完成,但我对此知之甚少。我在努力

RewriteCond %{HTTP_HOST} site-1.com  
RewriteRule ^/files(.*)?$ /files/site-1$1 [NC]

但这似乎不起作用。有人能帮我吗?

经典:服务器配置不正确,因此指令无法工作。吼叫声我的解决方案现在就像我在第一个“答案”中所说的:更改路径以使用子目录,然后将旧文件重定向到该文件夹:

RewriteCond %{HTTP_HOST} site-1.com 
RewriteCond %{REQUEST_URI} !^/files/site-1/.*$ 
RewriteRule ^files/(.*)$ /files/site-1/$1 [L,R=301]
我认为内部Drupal路径不适用于重写(例如imagecache)。这就是我选择这个选项的原因

仅供参考:我用来更改数据库中路径的替换内容如下(在phpmyadmin中):


背景问题:这些文件是通过Drupal的文件表处理的,还是单独上传的?它们是通过Drupal的文件表处理的。其中大部分是图像字段,一些是音频模块的音频文件。此外,还有一些手动上传的文件。也可以选择根本不使用符号链接,通过mod_rewrite完成所有重写工作。但我缺乏完成这项任务的技能……嗯,没有人?事实上,我认为问题可能更简单,也不一定与Drupal相关:如果我想让用户“看到”URL
http://site-1.com/files
但在
http://site-1.com/sites/site-1.com/files
UPDATE files SET filepath = REPLACE(filepath,'files/','files/site-1/'); 
UPDATE node_revisions SET body = REPLACE(body,'src="/files/','src="/files/site-1/'); 
UPDATE node_revisions SET teaser = REPLACE(teaser,'src="/files/','src="/files/site-1/'); 
UPDATE boxes SET body = REPLACE(body,'src="/files/','src="/files/site-1/');