How to call the view of a node from the URL when SEO rules are applied on that node?

  Written by The Jahia Team
 
Developers
Sysadmins
   Estimated reading time:
7.1.2.1
The customer would like to call the view (default or non-default) of a node and SEO rule is applied to this node.

Answer

The first constraint is that a content template for each view has to be created.

The second constraint is that only one content template could be the default one.
This means that calling a node with the default view return the view of the default content template.

To bypass these constraints, a solution is to use your own SEO URL rewriting.

As mentioned in the documentation link, https://academy.jahia.com/documentation/techwiki/services/urls-management

you can define it as below:

- modules/**/META-INF/seo-urlrewrite*.xml

Here is a module to illustrate this SEO URL rewriting: https://support.jahia.com/secure/attachment/48493/test-7121-1.0-SNAPSHOT.jar
The rule is the following one seo-urlrewrite-test7121.xml:
 

<urlrewrite>
    <rule>
        <name>Append servername</name>
        <note>Check if we need to add server name</note>
        <from>^(.*)/titi/(.*)\.html$</from>
        <to>$1/home/pagecontent/$2\.html</to>
    </rule>
</urlrewrite>

This rule means that every URL containing /titi/[content template name].html is converted to /cms/render/live/en/sites/mySite/home/pagecontent/[content template name].html

In this module, a default content template "vuesimple" and a content template "details" are defined

So, when entering in Live mode: http://desktop-o9jivla:8080/titi/test.vuesimple.html or http://desktop-o9jivla:8080/titi/test.html, the SEO URL rewriting is applied and convert the URL to: /cms/render/live/en/sites/mySite/home/pagecontent/test.vuesimple.htm

And when entering in Live mode: http://desktop-o9jivla:8080/titi/test.details.html, the SEO URL rewriting is applied and convert the URL to: /cms/render/live/en/sites/mySite/home/pagecontent/test.details.html