[Drupal 筆記] Multi-sites in subdirectories

今天弄清楚了一件困擾我兩年的事情 囧

話說 "Multi-sites" 是 Drupal 一個很好用的功能,核心概念就是「共享 code」,佈署一次就能建立多個站台,管理跟維護都方便。

詳細資訊可參考官方文件,或是兩年前我比現在還肉咖的時候也寫過一篇筆記,有興趣請自行參考。

如果我們 google "Drupal multi-sites",範例中常見的是「同域名,不同子網域 (subdomain)」,但我想要的作法是「不同子目錄 (subdirectory)」,後者今天才弄清楚。

以下將兩種作法各貼出來:

同域名,不同子網域(subdomain)

  • 網站一:one.multi-sites.com
  • 網站二:two.multi-sites.com

Apache 設定檔:

Virtualhost 的 ServerAlias 會直接抓 sites.php 的設定值;
DocumentRoot 指向同一個目錄就好:

<VirtualHost *:80>
ServerName multi-sites.com
ServerAdmin hello@drupal.com
ServerAlias *.multisite.com
DocumentRoot /var/www/html
...(略)
</VirtualHost>

sites.php

等號左邊是域名,等號右邊是資料夾名稱:

$sites['one.multi-sites.com'] = 'one';
$sites['two.multi-sites.com'] = 'two';

不同子目錄 (subdirectory)

  • 網站一:one.multi-sites.com
  • 網站二:one.multi-sites.com/two

Apache 設定檔:

子目錄用 Alias 來定義:

<VirtualHost *:80>
ServerName one.multi-sites.com
ServerAdmin hello@drupal.com
DocumentRoot /var/www/html
Alias /two /var/www/html
...(略)
</VirtualHost>

sites.php

注意域名跟子目錄之間是用 "." 連接起來的:

$sites['one.multi-sites.com'] = 'one';
$sites['one.multi-sites.com.two'] = 'two';

sites.php 裡面列出了更多不同用法的範例,有興趣可以去看看。

標籤 (Tags)

Comments

CQ

不論是 D7 或是 D8 都可以使用 Domain 與延伸的模組來達到不論是 ossa.slat.org + blogs.slat.org 或是

www.slat.org/ossa + www.slat.org/blog

延伸的模組還可以設定不同的版型, 內容類型的開放, OG/Group 的套用等。

比較需要注意的是, 如果有不同網站下有非共用的模組,  在 D8 就要先測試是否會影響另外網站的功能。

周日, 04/12/2020 - 17:43 固定網址