2014-03-12 36 views
1

我正在設置對Drupal 7站點的訪問。該網站獨自坐在一個可以回答多個域名的框中,該數字可能會增長。我想要做的是告訴Drupal加載該網站,而不管哪個實際域名將我們帶到了框中(當然,其餘的URL總是相同的)。目前,大部分這些域名都會將我發送到安裝頁面。在任何URL上加載Drupal站點

問題是sites/目錄中缺少目錄(符號鏈接)。

我可以重寫通過Nginx中的備用域來的請求,但我想知道是否有應用程序級別的答案。就目前而言,通過除規範域以外的任何域訪問框/站點都會將我發送到安裝頁面。

有什麼我可以做的嗎?

+1

聽起來像一個多站點設置,是真的嗎?如果是這樣,你可以編輯sites/sites.php來將任意數量的域映射到一個Drupal安裝。如果這不是多站點設置,並且您的站點特定的東西全部位於站點/所有站點中,那麼您不必執行任何操作(設置服務器名稱/別名,並且nginx中的根目錄就足夠了)。除非有多站點設置,否則Drupal本身不會對傳入的域名進行任何操作 – Clive

+0

這是一個回答多個域的站點。 「stuff」位於不是「sites/all」的特定站點目錄中。我需要通過方框回答的任何請求才能知道要查看我們的目錄。有沒有辦法使用通配符?可能是這樣的:'$ sites ['*'] ='mycanonicaldomain.com''? –

+0

嗯......好吧,sites.php是一個PHP文件,它被解釋爲與其他任何文件一樣 - 爲什麼不測試當前請求的域,並根據這個動態地構建'$ sites'數組?如果這不起作用,你可能需要修補['conf_path'](https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/conf_path/7)讓它知道關於通配符char(絕對可行) – Clive

回答

0

在我看來,你沒有配置你的Drupal站點爲「默認」站點。 如果在站點/文件夾中找不到更好的(更具體到當前請求)設置文件,則加載文件「sites/default/settings.php」......這實際上是一個「通配符」配置,所以最好的解決方案是將網站文件移動到默認文件夾。有關更多詳細信息,請參見multi-site documentation

如果你不能這樣做,那麼你可以使用sites.php進行重寫,但是你需要更新它來添加任何你想匹配的新URL。有一個小捷徑,但:您可以添加一堆重寫如

$sites['com'] = 'default'; 
$sites['net'] = 'default'; 
$sites['org'] = 'default'; 
... 

將作爲包羅萬象的重寫在.COM,.NET,.ORG等結束網站,爲您節省了很多(但不是全部)手動重寫。

更改conf_path()函數應該是最後一個解決方案,因爲它會使Drupal更新進程更慢(並且如果在更新後忘記重新應用更改,則安裝程序將不再工作) 。