小编Jul*_*ers的帖子

apache RewriteRule 匹配 % 编码 URL 的语法?(修复字符编码问题;windows-1252 <=> utf-8 )

我托管的网页的 URL 中包含“ \”,与托管静态文件的project\xc2\xb2磁盘目录相匹配。project\xc2\xb2

\n

此页面由基于 java 的客户端用来从 URL(生物信息学软件IGV)加载数据。\n我的页面以 的形式列出 URL http://localhost:60151/load?file=http://example.org/project\xc2\xb2/some/data/file.bam。\n在浏览器中单击这些链接将导致 IGV 客户端(在本地主机上运行)发出请求GET http://example.org/project\xc2\xb2/some/data/file.bam从我的服务器。

\n

Linux/Mac 上的 \xe2\x9c\x85 IGV 通过请求此 URL 作为 UTF-8 编码\xc2\xb2=进行响应%C2%B2,一切正常。
\n\xe2\x9d\x8c 我新获得的Win-10用户的客户端请求\xc2\xb2= %B2(windows-1252编码),导致404-not-found。

\n

在尝试了几十种方法之后,我不知道如何帮助这个用户。

\n

我的印象是我应该能够在服务器端动态重写错误编码的 URL,以便它们最终仍然提供所需的数据,但是我不知道使规则模式匹配的神奇字符组合转义字符。

\n
\n

我已经尝试过的事情

\n
    \n
  • 仔细检查 404 是否不是网络问题;我看到GET %B2我的ssl_access_logwith404作为返回的状态码,所以它确实是服务器在做。
  • \n
  • “正确的”方式:在将 URL 提供给客户端之前对 URL 进行 UrlEncoding。Perl 的将 变成URI::Encode encode_uri(显然?),这在某种程度上更加错误\xc2\xb2%C3%82%C2%B2 …

mod-rewrite utf-8 encoding apache-2.4

5
推荐指数
1
解决办法
4791
查看次数

标签 统计

apache-2.4 ×1

encoding ×1

mod-rewrite ×1

utf-8 ×1