Hi,
I've tried searching the forum, but did not find an answer to my question.
We have a multi language site, with two languages English and Spanish.
Our site structure is as follows:
content
|----mysite
|-------es
|----... (spanish pages)
|-------en
|----... (english pages pages)
The default urls are something like this:
www.myhost.com/content/mysite/en/welcome.html
By using sling mappings I would like to become the following:
www.myhost.com/en/welcome.html
So get rid of the /content/mysite/ part en keep the locale.
Using the following sling mapping, I am able to get rid of the /content/mysite/en part
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:Mapping"
sling:internalRedirect="[/content/mysite/en/(.*)]"
sling:match="www.myhost.com/$1"/>
The link checker (transformer) rewrites the menu links to:
www.myhost.com/welcome.html and these links work.
But when I want to keep the locale, with the following mapping:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:Mapping"
sling:internalRedirect="[/content/mysite/(.*)]"
sling:match="www.myhost.com/$1"/>
I get links like this: www.myhost.com/en/welcome.html, but these result in a 404.
The log shows the following message:
GET /content/mysite/en/en/welcome.html HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Resource /content/mysite/en/en/welcome.html not found
Somehow the locale is duplicated now.
Can someone explain me what I'm doing wrong ?
Thanks for your help!
Solved! Go to Solution.
Views
Replies
Total Likes
You can try to do the same on a dispatcher level. Check Using Dispatcher with Multiple Domains and the way it describes a configuration for
| - /content
| - sitea
| | - content nodes
| - siteb
| - conent nodes
Views
Replies
Total Likes
If this is a part of your log message:
GET /content/mysite/en/en/welcome.html HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Resource /content/mysite/en/en/welcome.html not found
It seems to me that this was not a request to mysite.com/en/welcome.html.
Jörg
Views
Replies
Total Likes
the point is that for the 2nd mapping; the page is not found and the logging shows the double locales.
of course I did not use the real names of the site.
Views
Replies
Total Likes
Have you followed all instructions mentioned here?
Views
Replies
Total Likes
smacdonald2008 yes, I think I've followed the doc. correctly.
Is it possible this might be caused by the JcrResourceResolverFactory, which currently looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:mixinTypes="[cq:ReplicationStatus]"
jcr:primaryType="sling:OsgiConfig"
resource.resolver.mapping="[/:/,/system/docroot/:/]"
resource.resolver.map.location="/etc/mappings/map.publish.local"
resource.resolver.searchpath="[/apps,/libs,/apps/foundation/components/primary,/libs/foundation/components/primary]"/>
Views
Replies
Total Likes
You can try to do the same on a dispatcher level. Check Using Dispatcher with Multiple Domains and the way it describes a configuration for
| - /content
| - sitea
| | - content nodes
| - siteb
| - conent nodes
Views
Replies
Total Likes
Views
Likes
Replies