ReWriteRule с флагом [N] - PullRequest
0 голосов
/ 28 июня 2019

Я хочу переписать правило в 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 не изменяются, но если это только один французский é работает просто отлично.

...