Сейчас на мультисайтинговом друпале внутрение ссылки приходится писать в виде "\sites\site1\files\file1.jpg"
Можно ли что-нибудь сделать, что бы можно было писать просто "\files\file1.jpg"?
Пока остановился на возможностях модуля Rep[lacement]Tags. Определил переменную "$SITE_ROOT$" значением "/sites/site1" и в линках начала писать "$SITE_ROOT$/files/file1.jpg".
Перед этим пробовал модуль pathfilter - не помог, т.к. вместо "internal" подставлял путь к корню сайта (www.site1.com), а не к "/sites/site1".
Пробовал так же и с "admin/settings/file-system" поэкспериментировать - тоже не помогло.
В общем други более-менее удобных способов указания внутренних ссылок в мультиязычных сайтах я не нашёл. Не привязывать же контент к одному домену.
Пробовал так же и с "admin/settings/file-system" поэкспериментировать - тоже не помогло.
А вы пробовали на дополнительных сайтах в настройках указать что-нить типа такого ../files
Ведь если я не ошибаюсь, движок позвляет указывать путь к папке под файлы не просто на директорию выше, но вплоть до расположения за публичной папкой, в недоступном извне месте. Последнее в случае если файлы раздаются друпалом.
А вы пробовали на дополнительных сайтах в настройках указать что-нить типа такого ../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-доступом.
Себе сделал решение следующим образом:
Допустим есть сайт 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'.":
Комментарии
Судя по обильному количеству ответов я так понимаю что никак...
Ну а можно хотя бы писать что-то вроде , определив значение макроса/переменной в одном месте?
Мне кажется, можно с помощью htaccess убрать лишнее.
Но могу ошибаться.
admin/settings/file-system
Стоит там как раз "/sites/site1/files". Но если написать "/sites/site1/files/file1.jpg" вместо "/files/file1.jpg" то не работает.
Не смог придумать, как с помощью htaccess можно решить задачу.
Пока остановился на возможностях модуля Rep[lacement]Tags. Определил переменную "$SITE_ROOT$" значением "/sites/site1" и в линках начала писать "$SITE_ROOT$/files/file1.jpg".
Перед этим пробовал модуль pathfilter - не помог, т.к. вместо "internal" подставлял путь к корню сайта (www.site1.com), а не к "/sites/site1".
Пробовал так же и с "admin/settings/file-system" поэкспериментировать - тоже не помогло.
В общем други более-менее удобных способов указания внутренних ссылок в мультиязычных сайтах я не нашёл. Не привязывать же контент к одному домену.
А вы пробовали на дополнительных сайтах в настройках указать что-нить типа такого ../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-доступом.
Я с похожей, имхо, проблемой столкнулся http://drupal.ru/node/15924 Решения пока нет...
Себе сделал решение следующим образом:
Допустим есть сайт 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]
И так можно настраивать любые папки для любых сайтов.