2016-11-23 116 views
1

我正在使用Umbraco的多站點概念將我的4個(幾乎相同的)Umbraco站點移動到1個Umbraco實例的過程中。Umbraco多站點與WordPress博客子目錄

一切都很順利,但我有一個問題。

我的每個網站都有一個/博客/ WordPress博客。顯然,他們每個人都有自己獨特的內容。

我無法確定如何讓我的網站使用相同的目錄結構(對於Google Juice來說顯然非常重要)。

任何人都可以提出一個解決方案,可以讓我保留WordPress博客的目錄結構嗎?

回答

0

對於多站點站點來說這將非常困難,因爲在實例中的所有站點之間只能共享一個「/ blog /」文件夾。

如果這是一項要求,您的選擇是爲每個網站(例如/ blog-1,/ blog-2等)設置一個唯一的博客文件夾,或將每個網站作爲單獨的Umbraco網站。請記住,如果您有不同的博客文件夾,它們將在每個站點都可用,這可能不是您想要的。

如果你感覺很勇敢,你可能會聰明地用IIS Rewrite做一些事情,根據域重寫對不同底層虛擬文件夾的請求,但是你仍然會遇到所有底層博客文件夾存在的問題在網站的每個版本中都有提供。

如果是我,在這種情況下,我會將所有網站作爲單獨的Umbraco實例,因爲這樣可以節省很多麻煩。爲什麼他們必須在一個Umbraco實例中是否有特殊的原因?

+0

是的。因爲我厭倦了每次將代碼複製到每一個代碼。 我想我可能只是把合法果汁當作/ blog /而我會將其他人移到子域名。 我會在我的博客中找出某種類型的php代碼,將任何進入錯誤域名的人轉發給一個活躍的域名。 – Yoni

1

一個解決方案是使用URL rewrite and Application Request Routing (ARR) IIS modules。在這種情況下,每個WordPress安裝可能是一個單獨的應用程序(可能託管在另一臺服務器上),並且ARR模塊將配置爲反向代理,併爲每個域的重寫規則與博客應用程序重寫URL。每個博客將有一個這樣的規則(需要調整/測試):

<rule name="Blog1" stopProcessing="true"> 
    <conditions> 
    <add input="{HTTP_HOST}" pattern="^www\.domain1\.com$" /> 
    </conditions> 
    <match url="^blog?(.*)" /> 
    <action type="Rewrite" url="/blog1{R:0}" /> 
</rule> 
+1

謝謝,我會檢查出來,並回來的結果 – Yoni

+0

這似乎是理想的解決方案,如果不是,我想知道如果你可以設置一個多站點的文字按下映射到每個博客像domain.com/blog和anotherdomain.co.uk/blog。知道這是否可能會很有趣。 –

+0

@AndyEdwards我會想,但還沒有測試過。 順便說一句,似乎也可以使用Azure的應用程序網關服務(請參閱https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-create-url-route-portal )。我相信其他解決方案,例如Akaimai CDN和作爲反向代理運行的nginx webserver也可以。 – Alex

0

這聽起來像你真正需要的是一個更好的部署過程。

現在,在一個單一的代碼庫上開發一個相對常見的場景,然後推送到多個站點/服務器/位置,並且有很多工具可以幫助您做到這一點。

Octopus DeployKuduVisual Studio Team Services都會把你的代碼,並將其部署到多個站點(自提,因爲它們是免費的,但也有CI tools for .NET負荷,將做到這一點)。

當然,您也可以自動自動化Web Deploy,您自己或不需要MSBuild