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

In Websphere Commerce 7, how do I remove the language and store name from an SEO url the correct way?

提问人:jros 提问时间:7/24/2018 最后编辑:jros 更新时间:7/27/2018 访问量:558

问:

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

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

但是,他们希望从所有 url 中删除。例如,当用户导航到 www.clientwebsite.com 时,URL 会自动切换到 www.clientwebsite.com/en/clientstorename。我想从网址中删除,以及网站上的所有其他网址。/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*=all

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

我还尝试从 SEOURLMapper 类内的 URL 中截获并删除 /en/clientstorename,但我对此的测试实际上并没有影响浏览器中显示的 URL。

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

Java URL 搜索引擎优化 WebSphere WebSphere-7

评论


答: 暂无答案