Em Websphere Commerce 7, Como faço para remover o idioma e armazenar o nome de um url SEO da maneira correta?

Actualmente, o cliente para quem trabalho está a usar os urls amigáveis do SEO aqui descritos:

Https://www.ibm.com/support/knowledgecenter/en/SSZLC2_8.0.0/com.ibm.commerce.seositemap.doc/concepts/csdSEOURLconstruction.htm

No entanto, eles gostariam que /en/clientstorename fossem removidos de todos os urls. Por exemplo, quando um utilizador navega para www.clientwebsite.com, o url muda automaticamente para www.clientwebsite.com/en/clientstorename gostaria de remover o /en/clientstorename a partir da url, e todos os outros urls no site.

O Cliente também me informou que as alterações do IHS não são uma solução possível para este problema.

Então, tanto quanto sei, isso deixa-me com a única opção de remover directamente o /LanguageToken/StoreToken:CatalogToken parts de todas as entradas em cada ficheiro xml SEOURLPatterns. Ou seja, meu pensamento foi fazer esta mudança através de todos os arquivos seourlpatterns xml no espaço de trabalho. linha e minha linha modificada Sem comentários)

<seourl:seoUrlPatternDef name="PersonalizedProductURLPIPPage">
<!--<seourl:seoUrlPattern viewName="ThirdPartyVendorProductsDisplayView">/LanguageToken/StoreToken:CatalogToken/ProductToken/PCPToken/BeginIndexToken/ioZoneToken</seourl:seoUrlPattern>-->
    <seourl:seoUrlPattern viewName="ThirdPartyVendorProductsDisplayView">/ProductToken/PCPToken/BeginIndexToken/ioZoneToken</seourl:seoUrlPattern> 
    <seourl:urlToParamMapping>
        <seourl:mapping name="langId" value="?LanguageToken?"/>
        <seourl:mapping name="storeId" value="?StoreToken?"/>
        <seourl:mapping name="catalogId" value="?CatalogToken?"/>
        <seourl:mapping name="productId" value="?ProductToken?"/>
        <seourl:mapping name="plchldr" value="?PCPToken?"/>
        <seourl:mapping name="mfname" value="?BeginIndexToken?" />
        <seourl:mapping name="styleId" value="?ioZoneToken?" />
        <seourl:mapping name="errorViewName" value="ProductDisplayErrorView"/>
    </seourl:urlToParamMapping>
    <seourl:paramToUrlMapping>
        <seourl:mapping name="LanguageToken" value="?langId?" defaultValue="-1"/>
        <seourl:mapping name="StoreToken" value="?storeId?"/>
        <seourl:mapping name="CatalogToken" value="?catalogId?"/>
        <seourl:mapping name="ProductToken" value="?productId?"/>
        <seourl:mapping name="PCPToken" value="?plchldr?"/>
        <seourl:mapping name="BeginIndexToken" value="?mfname?"/>
        <seourl:mapping name="ioZoneToken" value="?styleId?"/>
    </seourl:paramToUrlMapping>
    <seourl:usageDef>
        <seourl:usage device="browser">
            <seourl:target>CatalogEntry</seourl:target>
        </seourl:usage>
    </seourl:usageDef>
</seourl:seoUrlPatternDef>

Quando faço isto, vejo que os URLs gerados estão agora a deixar de fora o /en/clientstorename, no entanto, cada página apenas mostra uma mensagem de erro genérica, e até mesmo ao virar o registo até *=all não mostra nada na consola.

Estou aqui preso e não sei como proceder. Há alguma aula em algum lugar que eu possa sequestrar para que estas partes das urls sejam removidas? Quando eu remover o /en/clientstorename usando o SEOURLPatterns.arquivos xml, há exceções não documentadas sendo lançados e eu não sei como proceder nessa rota.

também tentei interceptar e remover o /en/clientstorename do URL dentro da classe SEOURLMapper, mas o meu teste com isto não afectou o URL apresentado no navegador.

Qual é a melhor maneira de remover este /en/clientstorename de cada url no site do meu cliente sem afectar a funcionalidade do próprio site.

Author: jros, 2018-07-23