we are setting up a website with a rather extensive amount of urls linked to it. and to make it even more advanced it also has multilanguages for most of the subsites.
structure:
CONTENT (node in umb) FIRM level (with www.firm.com bound on IIS level) >BRANCH with www.branch.com hostname in umb >>NL with www.branch.nl >>> dutch content >>FR with www.branch.fr
>>> french content
>>DE with www.branch.de
>>> german content
>>EN with www.branch.com/en
>>> english content >BRANCH2 with www.branch2.com hostname in umb >>NL with www.branch2.nl
>>> dutch content >>FR with www.branch2.fr
>>> french content
>>DE with www.branch2.de
>>> german content
>>EN with www.branch2.com/en
>>> english content >BRANCH3 with www.branch3.com hostname in umb >>NL with www.branch3.nl
>>> dutch content >>FR with www.branch3.fr
>>> french content
>>DE with www.branch3.de
>>> german content
>>EN with www.branch3.com/en
>>> english content
remark: a top level domain wil not always be available for every language of a branch (in the above case the english nodes)
possible solutions we were thinking about:
1) making subdomains like en.branch3.com fr.branch3.com for every language to create a fallback when top level domains are not available. we set the usedomainprefixes to true and hide toplevelnodeFromPath to false issue: the cultures are not correct when you use www.branch3.com/nl (should have same effect as www.branch3.nl but does not)
2) second option was to not have any hostname bound to the actual language nodes, and to make the language specific urls as redirects on the IIS level to www.branch3.com/nl and */fr ... etc. this requires the hideTopLevelNodeFromPath to be True, so we do not get www.branch3,com/branch3/nl but this makes the higher level domains not working. (www.firm.com/branch4) (when branch 4 does not have its own domainname it needs www.firm.com/branch4 while the branch4 part is hidden.)
is there a solution for 1 of the 2 above options, or can anyone point us into the direction of a 3rd (preferably working) option.
techy info:
Umbraco Version : 4.0.2
asp.net version : 2.0
Windows and iis version : windows 2003 server with IIS 6
I am sure that your (1) should work and it sounds like a bug, as it used to work on early versions of Umbraco v4.
Provided that you have set the domain to www.branch.com/nl and the language to the appropriate setting, then it should work! Perhaps you have uncovered a bug?
One thing I did discover is that umbraco:NiceUrl doesnt work if you set domain names on nodes which are deeply nested (I think your example is OK, but if you went one node deeper it might not work)
www.firm.com is OK www.firm.com/branch is OK = same as www.branch.com also OK www.firm.com/branch/nl is OK www.branch.nl is also OK
but, http://www.branch.com/nl the page works but shows in the wrong language :( (is in the language of the www.branch.com)
we tried adding www.branch.com/nl to it but it doesn't help Also when a sub of the branch is not having a domain attached niceurl builds up a wrong url (www.branch.com/branch/nl)
And when having multiple branches with their hostnames attached root nodes work great but child's fail. So www.branch.com and www.branch1.com work but www.branch1.nl does not work, www.branch.nl does work.
The problem of www.branch.com/nl is solved, had to edit the source of umbraco (codeplex issue here )
But now the next problem... for some reason, when surfing to www.branch2.nl the wrong data is loading, umbraco loads in the data from www.branch.nl. Same thing happens with all other 2nd level nodes, he always loads data from the first root node.
requestHandler Redirecting to domain: www.branch2.nl, nodeId: 1080 umbracoRequestHandler xpath: '/node [@urlName = "nl"]' umbracoRequestHandler Just before xPath query (False, '/node [@urlName = "nl"]') umbracoRequestHandler pageXPathQueryStart: '/root' umbracoRequestHandler After xPath query umbracoRequestHandler Access checking started umbracoRequestHandler Page not protected umbracoRequestHandler Access checking ended umbracoInit Done handling request umbracoPage Element loaded: pageTitleShort umbracoPage Element loaded: umbracoNaviHide umbracoPage Element loaded: umbracoSitemapHide umbracoPage Pagedata loaded for NL (ID: 1062, Version: 08239f14-f103-4f6b-aa4d-9af0c82de38a) default.aspx Culture changed to nl-BE
In this example the nodeid 1080 was the page i was trying to load, but then for some reason it is loading in the data from 1062.
advanced hostnames with multilanguage issue
Hi,
we are setting up a website with a rather extensive amount of urls linked to it. and to make it even more advanced it also has multilanguages for most of the subsites.
structure:
CONTENT (node in umb) FIRM level (with www.firm.com bound on IIS level)
>BRANCH with www.branch.com hostname in umb
>>NL with www.branch.nl
>>> dutch content
>>FR with www.branch.fr
>>> french content
>>DE with www.branch.de
>>> german content
>>EN with www.branch.com/en
>>> english content
>BRANCH2 with www.branch2.com hostname in umb
>>NL with www.branch2.nl
>>> dutch content
>>FR with www.branch2.fr
>>> french content
>>DE with www.branch2.de
>>> german content
>>EN with www.branch2.com/en
>>> english content
>BRANCH3 with www.branch3.com hostname in umb
>>NL with www.branch3.nl
>>> dutch content
>>FR with www.branch3.fr
>>> french content
>>DE with www.branch3.de
>>> german content
>>EN with www.branch3.com/en
>>> english content
remark: a top level domain wil not always be available for every language of a branch (in the above case the english nodes)
possible solutions we were thinking about:
1) making subdomains like en.branch3.com fr.branch3.com for every language to create a fallback when top level domains are not available.
we set the usedomainprefixes to true and hide toplevelnodeFromPath to false
issue: the cultures are not correct when you use www.branch3.com/nl (should have same effect as www.branch3.nl but does not)
2) second option was to not have any hostname bound to the actual language nodes, and to make the language specific urls as redirects on the IIS level to www.branch3.com/nl and */fr ... etc.
this requires the hideTopLevelNodeFromPath to be True, so we do not get www.branch3,com/branch3/nl
but this makes the higher level domains not working. (www.firm.com/branch4) (when branch 4 does not have its own domainname it needs www.firm.com/branch4 while the branch4 part is hidden.)
is there a solution for 1 of the 2 above options, or can anyone point us into the direction of a 3rd (preferably working) option.
techy info:
Sounds very strange in deed!
I am sure that your (1) should work and it sounds like a bug, as it used to work on early versions of Umbraco v4.
Provided that you have set the domain to www.branch.com/nl and the language to the appropriate setting, then it should work! Perhaps you have uncovered a bug?
One thing I did discover is that umbraco:NiceUrl doesnt work if you set domain names on nodes which are deeply nested (I think your example is OK, but if you went one node deeper it might not work)
Image posting didnt work :(
Try
http://img.skitch.com/20090813-gx4cb57tcq481gxxd8tekpj2kd.jpg
So in option 1:
www.firm.com is OK
www.firm.com/branch is OK = same as www.branch.com also OK
www.firm.com/branch/nl is OK
www.branch.nl is also OK
but, http://www.branch.com/nl the page works but shows in the wrong language :( (is in the language of the www.branch.com)
we tried adding www.branch.com/nl to it but it doesn't help
Also when a sub of the branch is not having a domain attached niceurl builds up a wrong url (www.branch.com/branch/nl)
And when having multiple branches with their hostnames attached root nodes work great but child's fail. So www.branch.com and www.branch1.com work but www.branch1.nl does not work, www.branch.nl does work.
In umbraco itself on the properties tab there is also a strang thing http://www.branch.com/http://www.branch.nl ...
Anyone have some advise please?
Thanks
The problem of www.branch.com/nl is solved, had to edit the source of umbraco (codeplex issue here )
But now the next problem... for some reason, when surfing to www.branch2.nl the wrong data is loading, umbraco loads in the data from www.branch.nl. Same thing happens with all other 2nd level nodes, he always loads data from the first root node.
requestHandler Redirecting to domain: www.branch2.nl, nodeId: 1080
umbracoRequestHandler xpath: '/node [@urlName = "nl"]'
umbracoRequestHandler Just before xPath query (False, '/node [@urlName = "nl"]')
umbracoRequestHandler pageXPathQueryStart: '/root'
umbracoRequestHandler After xPath query
umbracoRequestHandler Access checking started
umbracoRequestHandler Page not protected
umbracoRequestHandler Access checking ended
umbracoInit Done handling request
umbracoPage Element loaded: pageTitleShort
umbracoPage Element loaded: umbracoNaviHide
umbracoPage Element loaded: umbracoSitemapHide
umbracoPage Pagedata loaded for NL (ID: 1062, Version: 08239f14-f103-4f6b-aa4d-9af0c82de38a)
default.aspx Culture changed to nl-BE
In this example the nodeid 1080 was the page i was trying to load, but then for some reason it is loading in the data from 1062.
I've got the same problem. Isn't this a problem in any V4 installation?
Does anyone have a patch?
Thanks
Jesper
My solution. Ensure theres no overlap in hostnames.
This will work:
website.com/uk (lang uk)
website.com/de (lang de)
This won't work:
website.com (lang uk)
website.com/de (lang de)
Any request to website.com/de will return "lang uk". Reason for this is that website.com partially matches website.com/de.
/Jesper
is working on a reply...