我正在将两个Drupal站点合并为一个多站点安装。但其中一个网站将文件保存在<drupal root>/files
,而另一个网站将文件保存在<drupal root>/files/site-2
(实际上是<drupal root>/sites/site-2/files
的符号链接)。现在我正在寻找一种方法来“合并”它们而不会丢失我的site-1的url结构,即我想要
http://site-1.com/files
显示http://site-1/files/site-1
并保持http://site-2.com/files/site-2
原样。
我想这可以通过一个简单的.htaccess mod_rewrite操作来完成,但我对此并不了解。我在尝试
RewriteCond %{HTTP_HOST} site-1.com
RewriteRule ^/files(.*)?$ /files/site-1$1 [NC]
但这似乎不起作用。有人能帮助我吗?
答案 0 :(得分:1)
Classic:服务器配置不正确,因此指令不起作用。哎呀。我的解决方案就像我在第一个'回答'中说的那样:更改使用子目录的路径,然后将旧文件重定向到该文件夹:
RewriteCond %{HTTP_HOST} site-1.com
RewriteCond %{REQUEST_URI} !^/files/site-1/.*$
RewriteRule ^files/(.*)$ /files/site-1/$1 [L,R=301]
我认为内部Drupal路径不能用于重写(例如imagecache)。这就是我选择这个选项的原因。
fyi:用于更改数据库中路径的替换内容是这样的(在phpmyadmin中):
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/');