SearchBoost在DNN站点中URL友好显示异常问题求助
解决DotNetNuke 9.3.2 + SearchBoost 5.1.57 搜索结果URL不友好问题
排查与修复步骤
检查DNN全局友好URL配置
确认站点友好URL功能完全启用:- 进入DNN后台
设置 > 站点设置 > 高级设置 > 友好URL - 勾选
启用友好URL,将URL格式设为高级模式 - 开启
包含页面名称等关联选项 - 保存设置后重启应用池,再触发SearchBoost全量索引
- 进入DNN后台
调整SearchBoost索引与模板设置
SearchBoost可能直接存储了TabID格式URL,需修改生成逻辑:- 进入SearchBoost
索引设置,开启使用友好URL抓取内容开关(若存在) - 若无相关开关,修改搜索结果显示模板:
- 找到模块
模板设置中的结果输出模板 - 替换原有TabID URL输出代码,调用DNN原生方法
DotNetNuke.Common.Globals.NavigateURL(tabId)生成友好URL - 保存模板后重新执行索引
- 找到模块
- 进入SearchBoost
强制清理SearchBoost索引文件
常规索引刷新无效时,手动删除索引文件:- 定位索引存储目录:
Portals/{PortalID}/SearchBoost/Indexes - 停止站点应用池
- 删除目录下所有索引文件
- 重启应用池后执行全量索引
- 定位索引存储目录:
检查单页面友好URL配置
部分页面可能未正确生成友好URL:- 进入目标页面
页面设置 > 高级设置 > 友好URL - 确认
友好名称已正确设置,未勾选排除在友好URL之外 - 若有自定义URL,验证格式正确性与生效状态
- 进入目标页面
添加URL重写规则兜底
若上述方法无效,通过IIS URL重写规则做跳转:- 为站点添加规则,匹配
/tabid/(\d+)/Default.aspx格式URL - 将其重定向为对应页面的友好URL,或通过DNN API动态获取页面友好名称完成重写
- 为站点添加规则,匹配
内容的提问来源于stack exchange,提问作者Justin Trevorrow
相关产品推荐
相关产品推荐

