Как настроить Drupal в многосайтовом режиме с использованием директивы Apache Alias ​​вместо символических ссылок? - PullRequest
0 голосов
/ 14 сентября 2011

Я успешно следовал инструкциям в файле Drupal install.txt и нескольким публикациям stackoverflow, чтобы создать новый сайт в другой подпапке на том же хосте, что и мой оригинальный (по умолчанию) сайт Drupal, частично с помощью символической ссылки из / bar / to /Foo /.

Original site 
example.com/foo/

Additional Drupal Site
example.com/bar/

Это прекрасно работает.Проблема, с которой я сталкиваюсь, заключается в том, что мы предпочли бы не использовать символическую ссылку для обеспечения перенаправления из-за дополнительной нагрузки на сервер, вызванной.Можно ли сделать то же самое с помощью директивы Alias ​​в Apache?

Пока у нас есть настроенная директива Alias ​​для отправки всех запросов на / bar / to / foo /.Это отправляет людей на оригинальный сайт, / foo /, а не на новый сайт / bar /.В противном случае URL написан правильно.Есть ли какие-то дополнительные шаги, которые необходимо предпринять, чтобы этот метод работал?

Ответы [ 2 ]

1 голос
/ 15 сентября 2011

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

Кажется, что символическая ссылкахорошее решение.Почему ты не можешь использовать это?Я не совсем понял, что вы имеете в виду под « дополнительный штамм ».

Я всегда думал, что многосайтовая система Drupal основана на имени сервера ($_SERVER['HTTP_HOST']) для правильного переключения вваши сайты / папки.Но так как оба ваших сайта работают в одном домене (и субдомене), Drupal загрузит один и тот же файл settings.php.

Одним из решений было бы добавить немного логики в ваши настройки.php файлВы можете проверить $_SERVER["REQUEST_URI"] и посмотреть, начинается ли он с / foo / или с / bar /.Затем вы можете переключаться между 2 базами данных (по одной для каждого каталога).В этом параметре switch или if вам также нужно будет установить переменную $ base_url, чтобы правильно генерировать ссылки, генерируемые Drupal.

Для загруженных файлов вам также придется разделять вещи.Вы можете создать следующее:

  • sites / foo / files
  • sites / bar / files

В каждой базе данных вы сможете установитькаталог файловой системы (страница администратора Drupal будет находиться в папке admin / settings / file-system).

Надеюсь, это может вам помочь.

PS: я подумал также об Apache RewriteRule вместоперенаправление, но это не сработает, потому что Drupal просто сгенерирует ссылки на целевой каталог, поэтому пользователи будут перенаправлены, нажав на первую ссылку, которую они встретят на сгенерированной странице: - (

0 голосов
/ 27 сентября 2011

Хорошие новости, все работает сейчас!У нашего тестового сервера была какая-то странная настройка DNS, которая мешала правилам перенаправления.Ни Symlinks, ни Apache Redirect Directive не передавали данные в Drupal правильно.

Когда мы переехали на другой виртуальный хост без дополнительного перенаправления DNS, все работало нормально, и Drupal работал независимо от того, использовали ли мы Symlnks или директивы Apache.

...