2017-10-03 4 views
0

Le module de réécriture apache (apache 2.4) me donne des maux de tête, j'ai besoin de votre aide.Réécriture et encodage d'Apache

J'essaie de rediriger mes utilisateurs non-identifiés vers une autre URL et de transmettre l'URL d'origine comme argument de rappel. Lorsque l'URL ci-dessous est appelé: http://myapp.com/context?arg1=value1&arg2=value2 l'utilisateur est redirigé vers:

http://myloginapp.com?callback=http%3A%2F%2Fmyapp.com%2Fcontext%3Farg1%3Dvalue1%26arg2%3Dvalue2 

J'ai essayé beaucoup de drapeaux ([NE], [B]) dans ma clause de réécriture et essayé quelques-uns cond rewrite trouvé dans le forum sans succès ...

+0

Copie possible de [Redirigez tout le trafic vers la page de garde, sauf si vous êtes connecté avec .htaccess] (https://stackoverflow.com/questions/15562941/redirect-all-traffic-to-holding-page-unless-logged-in -using-htaccess) – pringi

Répondre

0

Je pense que trouvé une partie de la solution avec:

RewriteCond %{QUERY_STRING} (.*)&(.*) 
RewriteRule /(.*)$ https://myloginapp.com/?callback=http://myapp.com/$1\?%1_%2 [N] 

avec le drapeau N Je peux répéter la réécriture tant que & reste dans la url. Mais cela ne fonctionne pas lorsque j'essaie de remplacer le trait de soulignement dans% 1_% 2 avec% 26. Et si j'essaie d'ajouter le drapeau NE, apache ne peut pas compiler la règle (les drapeaux NE et NE ne sont pas autorisés ensemble?).