我使用Umbraco 7.7建立了一个网站,我的内容树如下所示。
新闻(在图片Nieuws上)是使用Vorto为所有语言版本(现在只有荷兰语版本)制作的。
问题是新闻页面的网址。现在它看起来像这样:
http://localhost/data/nieuws
我想将此更改为:
http://localhost/nl/nieuws
或者如果我有其他语言:
http://localhost/en/news
这也必须适用于新闻的子页面。例如:
http://localhost/nl/nieuws/nieuwe-directeur
http://localhost/en/news/new-CEO
我尝试使用别名umbracoUrlName
创建一个属性,但它只更改了URL的最后一部分,并且无法为其他语言的同一页面创建多个URL。
结果如下。我已输入此文nl/nieuws
,并且新闻页面的网址已更改为此内容:
http://localhost/data/nlnieuws
我还尝试过Vorto编辑器来使用多种语言,但我已经有了这个网址:
http://localhost:51086/data/values-nl-benlnieuws-dtdguid36eceba8-82ce-4362-954b-a870c65adfc1/
如何更改依赖于actieve语言的URL
答案 0 :(得分:2)
如果需要,您需要创建自定义UrlProvider
和ContentFinder
。
public class DataUrlProvider : IUrlProvider
{
public virtual string GetUrl(UmbracoContext umbracoContext, int id, Uri current, UrlProviderMode mode)
{
throw new NotImplementedException();
}
public virtual IEnumerable<string> GetOtherUrls(UmbracoContext umbracoContext, int id, Uri current)
{
throw new NotImplementedException();
}
}
public class DataContentFinder : IContentFinder
{
public bool TryFindContent(PublishedContentRequest contentRequest)
{
throw new NotImplementedException();
}
}
实施并不复杂,但也不那么容易,这个答案太长了。
要了解如何操作,请查看此博文:
https://24days.in/umbraco-cms/2014/urlprovider-and-contentfinder/
答案 1 :(得分:0)
在Umbraco论坛上找到了一个更简单的答案。
使用Vorto或其他任何其他内容,如果您想要语言/文化的URL slug,只需右键单击父节点→单击 Culture and Hostnames →在域中选择您的语言→字段放
//mydomain.com/nl/
/mydomain.com/en/
等超级简单。它会将它添加到您选择的节点下的每个页面。
来源:our.umbraco.org forum (Change URL dependent of the active language in Umbraco 7)