我想在 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的末尾,字符不变,但是如果它只是单个法语é,则效果很好。