当将长度 2 更改为 5 时,在 URL 中显示唯一 SEO 代码两次
Displaying Unique SEO code two times in the URL when change length 2 to 5
我的编辑是vs2015社区
当前默认的 nopCommerce 仅支持两个字符的唯一 SEO 代码
但我至少需要五个字符。例如,如果越南英语,则 url 将是 /vn-en,如果是越南越南语,则 url 将是 /vn-vi
所以我想在 Unique SEO 代码中添加 vn-en 和 vn-vi。但它只支持两个字符。所以我对代码做了一些更改。
- LanguageMap.cs HasMaxLength(2) 到 HasMaxLength(5)
- LanguageValidator.cs 长度 (2) 到长度 (5)
- 语言中的 nvarchar(2) 到 nvarchar(5) table
然后 nop 允许我在该字段中添加五个字符。
但是当我从前台商店更改语言时 url 显示为 /vn-vi/vn-vi。意思是显示seo代码两次。我可以在输出中直接看到 404 页面未找到 html 代码。
当该字段中有两个字符时,工作正常。我错过了一些步骤?
谁能指导一下?
等待您的回复
在调查您面临的问题后,是因为 AddLanguageSeoCodeToRawUrl
方法 LocalizedUrlExtenstions
添加了两次 SEO 代码。
我认为我们可以在将其添加到 URL 之前修复检查 UniqueSeoCode
。
if (!url.Contains(language.UniqueSeoCode))
{
//add SEO code
url = url.Insert(startIndex, language.UniqueSeoCode);
url = url.Insert(startIndex, "/");
}
在AddLanguageSeoCodeToRawUrl
方法中添加if条件,检查!
将 _seoCodeLength
从 LocalizedUrlExtenstions
中的 2 更改为 Nop.Web.Framework > 本地化
希望对您有所帮助!
我的编辑是vs2015社区
当前默认的 nopCommerce 仅支持两个字符的唯一 SEO 代码
但我至少需要五个字符。例如,如果越南英语,则 url 将是 /vn-en,如果是越南越南语,则 url 将是 /vn-vi
所以我想在 Unique SEO 代码中添加 vn-en 和 vn-vi。但它只支持两个字符。所以我对代码做了一些更改。
- LanguageMap.cs HasMaxLength(2) 到 HasMaxLength(5)
- LanguageValidator.cs 长度 (2) 到长度 (5)
- 语言中的 nvarchar(2) 到 nvarchar(5) table
然后 nop 允许我在该字段中添加五个字符。
但是当我从前台商店更改语言时 url 显示为 /vn-vi/vn-vi。意思是显示seo代码两次。我可以在输出中直接看到 404 页面未找到 html 代码。
当该字段中有两个字符时,工作正常。我错过了一些步骤?
谁能指导一下?
等待您的回复
在调查您面临的问题后,是因为 AddLanguageSeoCodeToRawUrl
方法 LocalizedUrlExtenstions
添加了两次 SEO 代码。
我认为我们可以在将其添加到 URL 之前修复检查 UniqueSeoCode
。
if (!url.Contains(language.UniqueSeoCode))
{
//add SEO code
url = url.Insert(startIndex, language.UniqueSeoCode);
url = url.Insert(startIndex, "/");
}
在AddLanguageSeoCodeToRawUrl
方法中添加if条件,检查!
将 _seoCodeLength
从 LocalizedUrlExtenstions
中的 2 更改为 Nop.Web.Framework > 本地化
希望对您有所帮助!