Question

J'ai un cas d'utilisation relativement simple (je crois), mais je ne peux pas trouver des exemples où quelqu'un a fait cela. Nous utilisons Varnish comme un cache et proxy inverse devant deux applications différentes et que vous souhaitez faire des choses un peu plus unifié sur les deux comme les deux font des choses semblables. J'espérais Varnish pourrait aider à réécrire les URL comme indiqué ci-dessous.

URL de l'application originale pour la pagination (obtenir les premiers 10 articles):

http://myapplication.com/products/?startindex=1&endindex=10

URL désiré:

http://myapplication.com/products/?paginate=1:10

Ceci est juste un exemple (le plus complexe, car il combine deux paramètres), mais dans tous les cas, les valeurs d'entrée pour les paramètres restent les mêmes, il est juste que les noms de paramètres changent.

Un autre exemple serait:

http://myapplication.com/search/?query=something

à:

http://myapplication.com/search/?q=something

Quelqu'un at-il une expérience avec vernis et comment cela pourrait se faire?

Merci

Était-ce utile?

La solution

Apparemment, vous pouvez. La réponse est que regsub est votre ami.

Par exemple:

if (req.url ~ "(.*)(id=)") {
        set req.url = regsub(req.url, "(feeds/[a-zA-Z]*/)(.*)([\?|&])(id=)([a-zA-Z0-9]*)(.*)", "\1\2\3byGuid=\5\6");
}

convertira et le paramètre « id » entrant dans un paramètre « byGuid » sur le back-end. t fait aussi un tas de trucs avec le reste de la chaîne d'URL, mais les bases sont là. Donc, si quelqu'un veut faire quelque chose de semblable c'est un bon point de départ.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top