You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Pages切换语言时出错:查询字符串被错误URL编码

Power Pages语言切换器编码查询字符串致ASP.NET错误的解决办法

自定义语言切换器链接逻辑

默认语言切换器会把整个URL(包括问号和参数)全编码,直接用Liquid写自定义切换链接就能解决:

{% assign current_full_url = page.url | append: request.query_string %}
{% for lang in site.languages %}
  {% if lang.code != site.current_language.code %}
    <a href="{{ site.baseurl }}/{{ lang.code }}{{ current_full_url }}">{{ lang.name }}</a>
  {% endif %}
{% endfor %}

这段代码直接拼接当前页面路径、原始查询串和目标语言代码,不会乱编码问号这类特殊字符。

调整站点设置

检查并修改以下站点设置:

  • 找到 Website > SEO > Encode URLs,设为false,关闭全站URL强制编码
  • 确认 Portal > Language > Preserve Query String 设为true,保证切换语言时保留查询参数

用JS修正编码后的URL

如果不想改Liquid,加一段前端JS也能快速修复:

document.addEventListener('DOMContentLoaded', () => {
  document.querySelectorAll('.language-switcher a').forEach(link => {
    link.onclick = () => {
      link.href = link.href.replace('%3F', '?').replace('%3D', '=');
    };
  });
});

它会把被错误编码的%3F(问号)和%3D(等号)替换回原始字符,让ASP.NET能正常解析参数。

额外排查建议

  • 把Power Pages更新到最新版本,排查是否是旧版本的已知bug
  • 检查有没有自定义URL重写规则干扰了语言切换后的URL解析

内容的提问来源于stack exchange,提问作者Paul Lucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 00:22:41