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

如何在.htaccess重写规则中匹配德语变音大写字母Ü

解决.htaccess中无法匹配大写Über的重写规则问题

这个问题的核心在于Apache的NC(NoCase)标志默认只处理ASCII字符的大小写转换,对于德语变音字母这类非ASCII的Unicode字符(比如Ü和ü),它不会自动识别为大小写等价的字符。再加上你规则里的编码形式条目其实没起到作用,导致大写的/Über无法匹配。

为什么原来的规则不生效?

  1. NC标志的局限性:NC只对A-Z/a-z这类ASCII字符生效,Unicode字符的大小写转换不在它的处理范围内,所以über不会匹配Über。
  2. 编码形式的条目无效:mod_rewrite的RewriteRule匹配的是解码后的URI路径(浏览器发送的编码后的%C3%9Cber会被Apache解码为Über),所以你写的%C3%9Cber是编码前的字符串,根本不会匹配到解码后的Über,这部分条目其实是多余的。

修正后的重写规则

首先确保你的.htaccess文件以UTF-8无BOM格式保存(否则Apache读取时会把Über识别为乱码),然后修改规则如下:

RewriteRule ^(uber|ueber|über|Über)([_-]mich)?/?$ https://somewhere-else.com [NC,R=301]

额外说明

直接列出所有可能的变体(uber、ueber、über、Über)是最稳妥的方式,因为它不依赖Apache的Unicode配置,兼容性拉满。

内容的提问来源于stack exchange,提问作者Frank N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:38:42