Я хочу переписать правило в Apache2.conf для URL, содержащего несколько специальных символов (французский é) , но оно работает только в том случае, если URL содержит один специальный символ.
Вот моя конфигурация Apache2 ReWriteRule
RewriteRule "^(.*)\xe9(.*)$" "$1%C3%A9$2" [N]
RewriteRule "^(.*)\xe8(.*)$" "$1%C3%A8$2" [N]
RewriteRule "^(.*)\xe7(.*)$" "$1%C3%A7$2" [N]
\ 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=10]
RewriteRule "^(.*)\xe8(.*)$" "$1%C3%A8$2" [N=10]
RewriteRule "^(.*)\xe7(.*)$" "$1%C3%A7$2" [N=10]
Вот обработанный URL в файле журнала Apache2:
GET /pelican/historiqueTransfertProjet.do?method=home&nodeId=75&guiId=importExport.transfererHistorique&level=2&key1=Import/
Export&key2=Historique%20projets%20transf\xe9r\xe9s
Как вы можете видеть в конце URI, charcaters не изменяются, но если это только один французский é работает просто отлично.