La configuration des cookies via mod_rewrite échoue

Je construis un site au dessus de CodeIgniter. Pour que les URI soient plus jolis, CI utilise la règle mod_rewrite

RewriteCond $1 !^(index\.php|img|css|js|fonts|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [NC] 

Maintenant, je voudrais autoriser les gens à demander des pages dans une langue spécifique, c’est-à-dire traiter à la fois https://example.com/home et https://example.com/spa/home normaux. A ce stade, il est très troublant pour moi de créer de nouveaux contrôleurs, donc je veux définir un cookie de langue et réécrire l’URI d’origine. Après avoir lu quelques bons articles sur mod_rewrite, je suis venu avec cette

 RewriteCond %{QUERY_STRING} ^(eng|spa|ger|fre)/(.*) [NC] RewriteRule ^(.*)$ %2 [R,NC,QSA,CO=lang:%1:.example.com:1440:/] RewriteCond $1 !^(index\.php|img|css|js|fonts|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [NC] 

Cependant, lorsque j’essaie d’accéder à https://example.com/spa/home, l’URI n’est pas réécrit, lang cookie non défini et l’erreur 404 Page Not Found est renvoyée.

Je pense que ma règle et la règle CodeIgniter d’origine sont en conflit. Sont-ils? Et est-ce ma seule erreur?

Merci beaucoup!

UPD: Apache / 2.4.10

Essaye ça:

 RewriteCond %{REQUEST_URI} ^/(eng|spa|ger|fre)/(.*) [NC] RewriteRule ^(eng|spa|ger|fre)/(.*)$ /$2 [R,NC,QSA,CO=lang:%1:ubtv.local:1440:/] 

/spa/home n’est pas une queryssortingng , donc vous devez faire correspondre la variable %{REQUEST_URI} comme suit

 RewriteCond %{REQUEST_URI} ^/(eng|spa|ger|fre)/(.*) [NC] RewriteRule ^(.*)$ /%2 [R,NC,QSA,CO=lang:%1:.example.com:1440:/]