2016-11-30 7 views
0

JeComment écrire regex pour la redirection

/a/b?key1=value&key2=value 
/a/b/?key1=value&key2=value 

de certains URL, je veux les rediriger vers l'URL

/a/b/c/?key1=value&key2=value 

Qu'est-ce que je l'ai fait jusqu'à présent est je suis en mesure de rediriger le /a/b/ à /a/b/c en utilisant regex

^(\/.*\/)$ 

aussi je ne peux pas coder en dur b dans l'url car il est dynamique et peut varier.

Toute aide est appréciée.

Répondre

0

Que diriez-vous du regex,

^((?:/[^/?]+){2})/? 
  • Remplacer par $1/c
  • /[^/?]+ Matches /, suivi par autre chose que / ou ?. Le {2} S'assure qu'il est répété deux fois, une fois pour a et l'autre pour b. Ce match entier est capturé dans le groupe 1.

  • /? Correspond à un / facultatif à la fin.

Regex Demo

+0

comment j'obtenir la chaîne de requête? –

+0

@EkanshRastogi Ici, nous ne toucherons pas du tout aux paramètres de requête. Nous correspondons jusqu'à la requête params. Si vous êtes toujours intéressé, vous pouvez utiliser '\? [^?] + $' Pour faire correspondre les paramètres de requête – nu11p01n73R

+0

merci pour l'aide, cela fonctionnera pour la 2ème url je l'ai mentionné mais pas pour la première url –