如何修改多字节连字符的 Unicode 字节序列重写

如何修改多字节连字符的 Unicode 字节序列重写

我们有这样的情况,一些 Adob​​e PDF 文件将连字符格式化为 %E2%80%90。请参阅http://forums.adobe.com/message/2807241我猜这是由 Calibri 字体引起的。

所以这些 pdf 文件已经发布但链接不起作用所以我认为 mod rewrite 会来救援。

我关注了这里mod_ReWrite 删除 URL 的一部分但我似乎无法根据这个问题搜索 % 字符。

我还能做什么吗?

这是我想要使用的重写规则:

RewriteRule ^foo%(.+)bar  /foo-bar [L,R=301]

我也试过这个,但没有用

RewriteRule ^foo%E2%80%90bar  /foo-bar [L,R=301]

有任何想法吗?

答案1

使用来自的答案这个问题,我能够想出这个.htaccess规则来修复我自己的 unicode-hyphen-links-in-pdfs 问题:

# for janky pdfs with links using unicode hyphens
RewriteRule ^([^_]*)\x25E2\x2580\x2590([^_]*_.*) $1-$2 [N]
RewriteRule ^([^_]*)\x25E2\x2580\x2590([^_]*)$ /$1-$2 [L,R=301]

答案2

文档

...它适用于请求的(%解码)URL 路径...

因此,请改用 UTF-8 编码文件中的实际字符。

相关内容