it-swarm-ko.tech

기본 URL 문제 및 하위 디렉토리

나는 drupal 사이트 http://example.com 에 있고 같은 사이트의 개발 버전은 http : //another.example에 있습니다. com/subdir 개발 버전에서 작업 할 때/sites/default/files /를 참조하는 이미지 (예 : 이미지)는 경로의 '/ subdir'부분을 포함해야하기 때문에 작동하지 않습니다. 설정 $base_url은 (는) BASE 요소의 href 속성을 사용하므로 작동하지 않습니다. /href에 하위 디렉토리가 포함 된 경우.

이미지 참조에 하위 디렉토리를 포함시키는 가장 좋은 방법은 무엇입니까? 서버 재 작성에 의존해야합니까?

2
Bobby Jack

사이트를보다 이식성있게 만들기 위해 여기에서 할 수있는 두 가지가 있습니다.

템플릿에서 :

  • all 링크에 항상 l()을 사용하십시오 (자바 스크립트 링크)
  • 테마에서 이미지를 참조해야하는 경우 :

    <img src="<?php echo $base_path . drupal_get_path('theme', 'themename'); ?>/logo.png" />
    

귀하의 콘텐츠에서 :

  • 절대 링크를 만들지 않고 리디렉션되는 drupal으로 전송되는 링크보다 훨씬 많은 file manager 형식을 사용하지 않으면 업로드 된 콘텐츠 URL을 보존 할 수있는 방법이 없습니다. 파일로
  • 위의 방법으로 문제가 해결되지 않으면 하위 디렉토리 아래에있는 drupal 사이트의 다시 쓰기 규칙을 수정하여 sites/default/files /(.*)로 시작하는 요청 된 모든 URL을 기본적으로 다시 작성해야합니다. subdir/sites/default/files/$ 1에 다시 작성

Apache mod_rewrite 규칙은 다음과 같습니다.

# Redirect all files requests to a subdir
RewriteRule ^/?sites/default/files/(.*) /subdir/sites/default/files/$1 [R=301,L]
4
wiifm

Pathologic 모듈이 도움이 될 수 있습니다.

1
longwave

개발 사이트 도메인에 유연성이 있다면 다음을 사용하면 모든 것이 제대로 작동한다는 것을 알았습니다.

example.com-> 생산

dev.example.com-> 개발

귀하의 사이트 디렉토리는 두 경우 모두 /sites/example.com으로 작동합니다. 도메인과 일치하도록 base_url을 수정하면됩니다.

1
Craig Hyatt