带[N]标志的ReWriteRule

时间:2019-06-28 09:52:45

标签: url mod-rewrite encoding apache2 uri

我想在 Apache2.conf 中为包含多个特殊字符(法语é)的URL重新编写规则,但是仅在URL包含单个字符时才有效特殊人物。

这是我的Apache2 ReWriteRule配置

Detours

\ xe9 =>用拉丁语表示é
%C3%A9 =>表示UTF-8中的é

基于Apache2 https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_n的文档,如果要遍历所有字符,则可以使用 [N = nbrOfIteration]

当我添加如下所示的 [N = nbrOfIteration] 标志时,它不起作用

RewriteRule             "^(.*)\xe9(.*)$" "$1%C3%A9$2" [N]
RewriteRule             "^(.*)\xe8(.*)$" "$1%C3%A8$2" [N]
RewriteRule             "^(.*)\xe7(.*)$" "$1%C3%A7$2" [N]

这是Apache2日志文件中经过处理的URL:

RewriteRule             "^(.*)\xe9(.*)$" "$1%C3%A9$2" [N=10]
RewriteRule             "^(.*)\xe8(.*)$" "$1%C3%A8$2" [N=10]
RewriteRule             "^(.*)\xe7(.*)$" "$1%C3%A7$2" [N=10]

如您所见,在URI的末尾,字符不变,但是如果它只是单个法语é,则效果很好。

0 个答案:

没有答案