2011-02-11 4 views
2

2 개의 Drupal 사이트를 하나의 멀티 사이트 설치로 '병합'합니다. 그러나 사이트 중 하나는 <drupal root>/files에 저장된 파일이 있고 다른 하나는 <drupal root>/files/site-2에 저장됩니다 (실제로는 <drupal root>/sites/site-2/files에 대한 심볼릭 링크입니다). 지금은 내 사이트-1의 URL 구조를 잃지 않고 그들을 '병합'할 수있는 방법을 찾고 있어요 즉 나는 http://site-1/files/site-1
를 표시하고 그것이로 http://site-2.com/files/site-2을 유지하기 위해Drupal 파일 디렉토리를 서브 폴더로 다시 작성

http://site-1.com/files를 원한다.

나는이 간단한 htaccess로 mod_rewrite는 작업을 통해 수행 할 수 있습니다 상상,하지만 난 그것에 대해 잘 모른다. 나는 시도했다

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

그러나 작동하지 않는 것 같습니다. 누군가 나를 도울 수 있을까요?

+0

배경 질문 : 파일이 드루팔의 파일 테이블을 통해 처리 또는 독립적으로 업로드하는 내가 데이터베이스의 경로를 변경하는 데 사용 재료를 대체이 (phpMyAdmin을에)인가? – anschauung

+0

그들은 Drupal의 파일 테이블을 통해 처리됩니다. 대부분은 이미지 필드이며 일부는 오디오 모듈의 오디오 파일입니다. 또한 수동으로 업로드 한 파일도 있습니다. – yan

+0

또한 심볼릭 링크를 전혀 사용하지 않고 mod_rewrite를 통해 모든 재 작성 작업을 수행 할 수있는 옵션 일 수도 있습니다. 그러나 나는 그것을 성취 할 기술이 부족합니다 .. – yan

답변

1

클래식 : 지시어가 작동하지 않았다 있도록 서버 구성이 정확하지 않았다. Grrr. 내가 처음으로 '대답'에서 말했듯이 내 솔루션은 지금 : (

RewriteCond %{HTTP_HOST} site-1.com 
RewriteCond %{REQUEST_URI} !^/files/site-1/.*$ 
RewriteRule ^files/(.*)$ /files/site-1/$1 [L,R=301] 

내가 내부 드루팔 경로가 재 작성 작동하지 않습니다 생각 : 해당 폴더에 오래된 파일을 하위 디렉토리를 사용하고 리디렉션 할 경로를 변경 예를 들어 imagecache). 그래서이 옵션을 선택했습니다. 참고하시기 바랍니다

:

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/'); 
관련 문제