Sitecore及EXM模块项目名称含特殊字符的问题解决咨询
解决Sitecore项目及EXM新闻稿含德语特殊字符的创建问题
嘿,这个问题我之前帮不少人解决过——Sitecore默认的项目名称验证规则确实会卡掉德语的ä、ö、ü这类特殊字符,EXM因为有自己的一套校验逻辑,也会跟着出问题。别担心,咱们分两步调整配置就能搞定:
一、解锁Sitecore核心项目的特殊字符限制
Sitecore对项目名称的限制主要来自两个配置项,咱们逐一调整:
修改禁止字符列表
找到站点根目录下的web.config(或者对应版本的Sitecore.config),定位到名为InvalidItemNameChars的配置节点:<setting name="InvalidItemNameChars" value="\/:*?"<>|" />如果你的配置里额外包含了ä、ö、ü,直接把它们从
value里删掉就行;如果本来没有,那问题大概率出在名称的正则验证上。调整项目名称的正则验证规则
还是在同一个配置文件里,找到ItemNameValidation节点:<setting name="ItemNameValidation" value="^[\w\-\$]+$" />默认的正则只允许英文字母、数字、下划线、减号和美元符号,咱们把它改成支持Unicode字母的版本,这样就能兼容德语特殊字符了:
<setting name="ItemNameValidation" value="^[\p{L}\w\-\$]+$" />这里的
\p{L}代表所有Unicode字母,自然包含ä、ö、ü。
二、调整EXM新闻稿的特殊字符校验
EXM有独立的验证逻辑,所以还要单独调整它的配置:
- 找到EXM的核心配置文件
Sitecore.EmailExperience.Core.config(一般在App_Config/Include/EmailExperience目录下) - 查找是否有类似
InvalidNewsletterNameChars的配置项,如果有,把ä、ö、ü从禁止字符里移除 - 如果是正则验证的问题,找到EXM新闻稿名称对应的校验规则节点,把正则修改成和上面一样的
^[\p{L}\w\-\$]+$,确保允许德语特殊字符 - 另外,检查EXM新闻稿模板的「名称」字段,是否添加了自定义的验证规则,如果有,编辑该字段的验证条件,允许ä、ö、ü这类字符
最后要注意的小事
- 所有配置修改完成后,必须重启Sitecore的应用池,不然配置不会生效
- 如果你的站点用了友好URL,确保
EncodeNames配置项是true(默认就是true),这样Sitecore会把特殊字符自动编码成URL安全的格式(比如ä会变成%C3%A4),避免URL解析出错 - 先在本地测试环境验证没问题后,再部署到生产环境,防止意外影响现有功能
内容的提问来源于stack exchange,提问作者Dawid Dworak
相关产品推荐
相关产品推荐

