Мультисайтинг и внутренние ссылки

Главные вкладки

Аватар пользователя rastoman rastoman 11 февраля 2009 в 13:04

Сейчас на мультисайтинговом друпале внутрение ссылки приходится писать в виде "\sites\site1\files\file1.jpg"
Можно ли что-нибудь сделать, что бы можно было писать просто "\files\file1.jpg"?

Комментарии

Аватар пользователя rastoman rastoman 15 февраля 2009 в 21:57

"nleo" wrote:
admin/settings/file-system

Стоит там как раз "/sites/site1/files". Но если написать "/sites/site1/files/file1.jpg" вместо "/files/file1.jpg" то не работает.

Аватар пользователя rastoman rastoman 15 февраля 2009 в 22:00

"Nick.Tereh" wrote:
Мне кажется, можно с помощью htaccess убрать лишнее.
Но могу ошибаться.

Не смог придумать, как с помощью htaccess можно решить задачу.

Аватар пользователя rastoman rastoman 16 февраля 2009 в 1:29

Пока остановился на возможностях модуля Rep[lacement]Tags. Определил переменную "$SITE_ROOT$" значением "/sites/site1" и в линках начала писать "$SITE_ROOT$/files/file1.jpg".
Перед этим пробовал модуль pathfilter - не помог, т.к. вместо "internal" подставлял путь к корню сайта (www.site1.com), а не к "/sites/site1".
Пробовал так же и с "admin/settings/file-system" поэкспериментировать - тоже не помогло.

В общем други более-менее удобных способов указания внутренних ссылок в мультиязычных сайтах я не нашёл. Не привязывать же контент к одному домену.

Аватар пользователя WiseMan WiseMan 16 февраля 2009 в 2:04

"rastoman" wrote:
Пробовал так же и с "admin/settings/file-system" поэкспериментировать - тоже не помогло.

А вы пробовали на дополнительных сайтах в настройках указать что-нить типа такого ../files

Ведь если я не ошибаюсь, движок позвляет указывать путь к папке под файлы не просто на директорию выше, но вплоть до расположения за публичной папкой, в недоступном извне месте. Последнее в случае если файлы раздаются друпалом.

Аватар пользователя rastoman rastoman 16 февраля 2009 в 11:51

"WiseMan" wrote:
А вы пробовали на дополнительных сайтах в настройках указать что-нить типа такого ../files

Не пробовал. Не совсем понимаю чем это может помочь. Что бы указывать "../files" нодо для начала понимать, относительно какого пути будет действовать "../files". С таким же успехом можно указать "/home/www/drupal/files" для всех сайтов - но что изменится? Задача как раз в том, что бы разделить папки "files" для каждого сайта по своим каталогам и, при этом, указывать ссылки вида "/files/header.jpg" вместо "/sites/site1.com/files/header.jpg".

Имею папку с друпалом: /home/www/drupal
В папке /home/www/drupal/sites лежат сайты по папкам вида site1.com, site2.com, site3.com...
Как в папке друпала, так и в каждой папке сайта есть подпапки "files".
Апач для всех доменов сайтов настроен на одну папку - папку друпала ("/home/www/drupal").
Вполне логично, что у кажого сайта ссылки вида "/files/image1.jpg" ведут в папку "/home/www/drupal/files", а не как мне хочется ("/home/www/drupal/sites/site1.com/files"). А если в settings.php укзать переменную base_url в "http://www.site1.com/sites/site1.com", то всё начинает глючить, ибо ссылки для css-ок, модулей, js-скриптов становятся совсем некорректными, т.к. к указанной "http://www.site1.com/sites/site1.com" подставляются пути относительно корня и получается "http://www.site1.com/sites/site1.com/sites/site1.com/files/style.css".

То ли я что-то сделал/делаю неправильно, то ли проблема малой кровью не решаема изначально, но пока ничего не получается.
А настройка "admin/settings/file-system" вообще не понимаю чем может помочь в описанной ситуации. Сейчас настроено, как и рекомендуется доками "sites/site1.com/files" с public-доступом.

Аватар пользователя rastoman rastoman 23 февраля 2009 в 19:11

Себе сделал решение следующим образом:
Допустим есть сайт www.mysite.com в каталоге www/drupal/sites/mysite.com.
Домен настроен на папку www/drupal.
Что бы можно было на странице писать ссылки без всяких там /sites/mysite.com/images/myimage.jpg, в файле .htaccess самого друпала (в папке www/drupal) добавляем следующие строки (в блоке ) перед началом строк "# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.":

RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ [NC]
RewriteRule ^images/(.*)$ /sites/mysite.com/images/$1 [L]

И так можно настраивать любые папки для любых сайтов.