1

我曾经在一个多语言网站上工作,在接下来的几个月里,我们添加了韩语,现在我们正在添加日语。除了它在日志文件上生成大量 404 错误列表之外,我还有另一个与 url 相关的问题。当我插入此 url 时,Apache 服务器响应错误请求:

学校-详细な评価-11

#[.htaccess]
RewriteRule ^学校-詳細な評価-(.+)$ /statistics.php?n=$1 [L]

我也尝试使用 [B] 标志,但没有任何变化。

我也尝试删除字符,我发现它只有在我这样做时才有效:

#[.htaccess]
RewriteRule ^学-(.+)$ /statistics.php?n=$1 [L]

但是我当然不能以这种方式避免这个问题:D

我注意到 Apache 会将 url 转换为:%E5%AD%A6%E6%A0%A1-%E8%A9%B3%E7%B4%B0%E3%81%AA%E8%A9%95%E4% BE%A1-11

然后我也试了一下:

#[.htaccess]
RewriteRule ^%E5%AD%A6%E6%A0%A1-%E8%A9%B3%E7%B4%B0%E3%81%AA%E8%A9%95%E4%BE%A1-(.+)$ /statistics.php?n=$1 [L]

但我仍然有这个问题:(

有谁知道如何解决它或为什么会这样?我做了一项研究,但所有论坛和网站都只建议在网址末尾使用标志 B。

欢迎任何帮助!谢谢 :)

4

1 回答 1

1

试试十六进制:

RewriteRule ^\xE5\xAD\xA6\xE6\xA0\xA1-\xE8\xA9\xB3\xE7\xB4\xB0\xE3\x81\xAA\xE8\xA9\x95\xE4\‌​xBE\xA1-(.+)$ /statistics.php?n=$1 [L]

例如有这个规则:

RewriteRule ^\xE5\xAD\xA6-(.+)$ /statistics.php [L]

此网址http://domain.com/学-t将重定向到http://domain.com/statistics.php

对于测试,您可以使用在线 htaccess 测试器:http: //htaccess.madewithlove.be/记住在测试之前将页面编码更改为UTF-8

于 2013-08-20T11:15:02.343 回答