2016-11-23 115 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