如何在Bitrix中自定义博客文章URL结构以移除冗余子段?
Bitrix博客文章URL结构调整及404问题解决建议
核心问题分析
你遇到的404和URL层级冗余问题,本质是Bitrix的SEF(搜索引擎友好)URL规则未与信息块(IBlock)的页面模板正确绑定,单纯修改Content板块的Element/Section URL字段无法生效——这些字段需要配合站点SEF路由规则和信息块模板绑定才能起作用。
解决步骤
一、修复直接在Articles板块建文章的404问题
- 绑定信息块详细页模板
- 进入后台「内容 > 信息块 > 信息块管理」,找到「Articles」对应的信息块
- 编辑信息块,切换到「站点模板」标签页:
- 确保「详细页」选择了正确的文章详情页模板(如
/article/detail.php) - 「站点」选择当前运营的站点,保存设置
- 确保「详细页」选择了正确的文章详情页模板(如
- 配置SEF路由规则
- 进入「设置 > 搜索引擎优化 > 站点SEF设置」
- 找到对应站点的规则列表,添加/修改信息块元素规则:
- 规则类型选「信息块元素」
- 信息块选择「Articles」
- SEF模板填写目标格式的雏形(比如要
/articles/article-title就填/articles/#ELEMENT_CODE#/)
- 保存规则后,进入「设置 > 系统设置 > 缓存管理」,清空所有系统缓存
二、调整URL到目标格式
目标1:website.com/articles/article-title
- 确保上述SEF规则已设置为
/articles/#ELEMENT_CODE#/ - 检查Articles信息块的「列表页」设置:在「站点模板」标签页绑定正确的列表模板,SEF规则的列表页模板填
/articles/(若需保留列表页) - 删除之前创建的「blog」子板块,直接在Articles信息块下创建文章,测试访问
目标2:website.com/blog/article-title
- 方案一:修改现有Articles信息块的SEF规则,将SEF模板改为
/blog/#ELEMENT_CODE#/,确认模板绑定正确后清空缓存测试 - 方案二:新建名为「Blog」的独立信息块,绑定详情页模板后设置SEF规则为
/blog/#ELEMENT_CODE#/,将原Articles的文章迁移至新信息块(可使用Bitrix内置的信息块元素迁移工具)
三、关键排查点
- 检查文章的CODE字段:确保URL别名唯一、无特殊字符(可在文章编辑页的「SEO设置」里修改)
- 确认站点主域名设置:进入「设置 > 系统设置 > 站点设置」,主域名需与实际访问域名一致
- 验证服务器
.htaccess文件:确保包含Bitrix默认的Rewrite规则,不要随意删除或修改相关配置 - 清空全链路缓存:包括Bitrix系统缓存、页面缓存,以及浏览器本地缓存,避免旧规则残留
内容的提问来源于stack exchange,提问作者Leila
相关产品推荐
相关产品推荐

