3

我的编辑器是 vs2015 社区。

当前默认 nopCommerce 仅支持唯一 SEO 代码的两个字符

但我至少需要五个字符。例如,如果越南英语,则 url 将为 /vn-en,如果越南越南语,则 url 将为 /vn-vi

所以我想在独特的 SEO 代码中添加 vn-en 和 vn-vi。但它只支持两个字符。所以我对代码做了一些改变。

  1. LanguageMap.cs HasMaxLength(2) 到 HasMaxLength(5)
  2. LanguageValidator.cs 长度(2)到长度(5)
  3. 语言表中的 nvarchar(2) 到 nvarchar(5)

然后 nop 允许我在该字段中添加五个字符。

但是,当我从前台更改语言时,URL 会显示为 /vn-vi/vn-vi。表示显示 seo 代码两次。我可以在输出中看到 404 页面未找到直接 html 代码。

当该字段中有两个字符时,工作正常。我错过了一些步骤?

任何人都可以请指导我吗?

等待您的回复

4

1 回答 1

2

在调查了您面临的问题是由于两次添加 SEO 代码的AddLanguageSeoCodeToRawUrl方法。LocalizedUrlExtenstions

我认为我们可以UniqueSeoCode在将其添加到 URL 之前对其进行修复。

if (!url.Contains(language.UniqueSeoCode))
{
    //add SEO code
    url = url.Insert(startIndex, language.UniqueSeoCode);
    url = url.Insert(startIndex, "/");
}

在方法中添加 if 条件AddLanguageSeoCodeToRawUrl,然后检查!

在 Nop.Web.Framework > Localization_seoCodeLength从 2更改为 5LocalizedUrlExtenstions

希望这可以帮助!

于 2017-03-26T13:35:28.877 回答