web-dev-qa-db-fra.com

Un raccourcisseur d'URL peut-il transmettre des paramètres?

J'utilise bit.ly pour raccourcir mes URL. Mon problème - les paramètres ne sont pas transmis. Laissez-moi vous expliquer que j'utilise http://bit.ly/MYiPhoneApps qui redirige (disons) vers http://iphone.pp-p.net/default.aspx Maintenant, quand j'essaye http://bit.ly/MYiPhoneApps?param=xx ce paramètre n'est pas ajouté à l'URL résultante. Je sais que je pourrais créer une "URL courte" supplémentaire comprenant un paramètre - donc http://bit.ly/WithParam résulterait en http://www.mysite.com/somepath /apage.aspx?Par1=yy et ainsi de suite.

Mais ce que je veux, c'est avoir une URL courte dirigeant vers une page - et puis je veux ajouter un paramètre à cette URL raccourcie - qui devrait (bien sûr) atterrir sur ma page.

Est-ce un inconvénient de bit.ly (et d'autres sont peut-être capables de le faire) - ou le "transfert de paramètres" ne fonctionne-t-il pas avec les redirections 301?

Manfred

44
ManniAT

Il n'y a aucune raison technique pour laquelle cela ne pourrait pas être fait. Le service devrait simplement regarder quels paramètres il est envoyé, puis réécrire l'URL cible en conséquence.

Le problème est qu'il n'est pas nécessairement bien défini comment procéder.

Supposons que vous ayez l'url http://example.com/default.aspx?foo=bar, et son URL est courte http://foo.com/ABCD. Que doit-il se passer si vous essayez d'accéder à http://foo.com/ABCD?foo=baz? Devrait-il remplacer la valeur, vous obtenez donc foo=baz? Doit-il l'ajouter pour faire foo=bar&foo=baz? Si nous incluons les deux, dans quel ordre devraient-ils être?

Le système ne peut pas savoir quels paramètres peuvent être remplacés en toute sécurité et lesquels ne le sont pas, car parfois, vous voulez les deux dans l'URL, et il peut être important dans quel ordre les éléments sont ajoutés.

Vous pourriez dire "Eh bien, ne permettez pas cela pour les URL où les paramètres sont déjà présents", mais il y a aussi le problème que cela compliquera beaucoup plus le processus. Sans cela, il vous suffit de rechercher une clé dans une base de données et d'envoyer un en-tête de redirection. Maintenant, vous devez également analyser l'URL pour vérifier les paramètres et ajouter une partie de l'URL par laquelle vous avez été appelé. Cela nécessite plus de ressources système par redirection, ce qui peut devenir un gros problème si votre service est utilisé très fréquemment - vous aurez besoin de plus de puissance de serveur pour gérer la même quantité de redirections. Je ne pense pas que le compromis soit considéré comme "en vaut la peine".

18
Michael Madsen

Le raccourcissement d'URL associe une clé unique basée sur une URL complète (paramètres et tout), il n'est donc pas possible de transmettre des paramètres à un service de raccourcissement.

Typiquement

http://iphone.pp-p.net/default.aspx?param=10

doit produire une clé différente pour

http://iphone.pp-p.net/default.aspx?param=22

Le "transfert de paramètres" n'est tout simplement pas possible dans ces types de redirections, car les paramètres ne sont pas des parties valides d'une URL raccourcie, c'est la plupart (sinon tous) des services.

3
David Johnson

Comme mentionné dans les commentaires de rinogo

Dans Clickmeter

Destination URL : www.yoursite.com?myparam1={id1}&myparam2={id2} 
Tracking link   : www.go.clickmeter.com/38w2?id1=123&id2=abc 
After click     : www.yoursite.com?myparam1=123&myparam2=abc

Dans TinyUrl

Destination URL     : http://x.com?a=1
Shorten URL         : https://tiny url.com/y6gh7ovk
Shorten URL + param : https://tiny url.com/y6gh7ovk?a=2
Resultant URL       : http://x.com/?a=1&a=2

Ajout d'espace pour poster tinyurl

1
SmartManoj