‘% 2’ est supprimé sur RewriteRule

J’ai des règles sur .htaccess qui ressemble à ceci:

RewriteCond %{REQUEST_URI} ^/services/service1/?$ RewriteRule . http://www.domain.com/Service1%20Services.html [R=301,L] 

mais le %2 est supprimé et le résultat final est http://www.domain.com/Service10Services.html

J’ai cherché et trouvé que% 2, tout comme% 1 est une référence arrière RewriteCond .

Mon problème est que je ne sais pas comment y échapper afin qu’il soit traité comme un littéral de chaîne. Quelqu’un peut-il s’il vous plaît me dire comment je suis censé le faire?

%2 est une variable spéciale back-refernece, vous devez y échapper pour l’utiliser littéralement. Vous avez également besoin d’un drapeau NE pour le non-encodage.

Utilisez cette règle:

 RewriteRule ^services/service1/?$ http://www.domain.com/Service1\%20Services.html [R=301,L,NE]