在Websphere Commerce 7中,如何以正确的方式从SEO网址中删除语言和商店名称?

时间:2018-07-23 17:39:01

标签: java url seo websphere websphere-7

目前,我正在为之工作的客户正在使用此处概述的SEO友好网址:

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

但是,他们希望从所有网址中删除/en/clientstorename。例如,当用户导航到www.clientwebsite.com时,URL会自动切换到www.clientwebsite.com/en/clientstorename。我想从网址以及网站上的所有其他网址中删除/en/clientstorename

客户还告诉我,IHS更改不是解决此问题的可能方法。

据我所知,这使我有了一个直接从每个SEOURLPatterns xml文件中的所有条目中删除/ LanguageToken / StoreToken:CatalogToken部分的选项。也就是说,我的想法是对工作空间中所有SEOURLPatterns xml文件进行此更改。 (请注意已注释掉的现有行和未注释的修改行)

<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>

当我这样做时,确实看到生成的URL省略了/en/clientstorename,但是每个页面都只显示一条通用错误消息,甚至将日志记录一路转到{{1}在控制台中什么也没有显示。

我有点卡在这里,不确定如何进行。我是否可以劫持某个类以删除SEO网址的这些部分?当我使用SEOURLPatterns.xml文件删除/ en / clientstorename时,会抛出未记录的异常,并且我不确定如何继续执行该路由。

我还尝试从SEOURLMapper类内部的URL中拦截和删除/ en / clientstorename,但是我对此进行的测试实际上并未影响浏览器中显示的URL。

在不影响网站本身功能的情况下,从客户网站上的每个网址中删除此/ en / clientstorename的最佳方法是什么。

0 个答案:

没有答案