Apache和日本网站改写模块

时间:2013-08-20 10:13:36

标签: apache .htaccess mod-rewrite

我习惯在多语言网站上工作,在接下来的几个月内,我们添加了韩语,我们现在正在添加日语。除了它在日志文件上生成大量404错误的事实之外,我还有另一个问题。插入此URL时,Apache服务器响应带有错误请求:

学校 - 详细な评価-11

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

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

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

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

但当然我无法以这种方式避免这个问题:D

我注意到Apache会将网址转换为: %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.

欢迎任何帮助!谢谢:))

1 个答案:

答案 0 :(得分:1)

尝试使用Hex:

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 测试