• 懒鸟飞:帝国cms模板专业分享平台,新域名:lanniaofei.com

帝国cms处理带空格的英文Tag问题

帝国CMS处理带空格的英文Tag,核心问题是系统默认会自动过滤掉空格。比如你输入 "valve repair",它会被存成 "valverepair"。解决思路就是让系统保留这个空格

 核心修改:修改 connect.php 文件

你需要修改 /e/class/connect.php 这个核心文件。

找到处理参数的函数 RepPostVar,将其中过滤空格的代码注释或删除掉。

在 RepPostVar 函数里,找到这行代码并处理它

$val=str_replace(" ","",$val);


你可以选择:

  • 删除或注释掉这行代码。

  • 或者,为了更安全,改用另一个函数 RepPostVar2,这个函数不会过滤空格
     

注意:直接修改核心文件前,请务必备份。有开发者提到,可以寻找 RepPostVar2 这个“兄弟函数”来替代,以避免影响系统的其他部分

进阶处理:解决伪静态下的 + 号问题

如果你的网站启用了TAG伪静态,完成上面的修改后,可能会发现URL里的空格变成了 + 号,导致页面打不开
这是因为 urlencode() 函数会把空格编码为 +。解决办法是在生成伪静态链接的函数 eReturnRewriteTagsUrl 里,手动把 + 替换成 %20(URL中空格的正确编码)
同样在 /e/class/connect.php 文件中,找到这个函数,在它返回URL之前加入替换逻辑:

$r['pageurl'] = str_replace('+', '%20', $r['pageurl']);
 

完成这两步修改后,你的英文多词Tag应该就能正常显示和工作了。

如果需要进一步的帮助,比如配置伪静态规则,可以随时再问我。

QQ客服

扫码添加客服QQ

使用QQ扫一扫,或长按识别二维码

QQ二维码

如无法扫码,请手动添加QQ:

长按图片保存或识别二维码