J'essaie de créer une route fourre-tout pour suivre quand une chaîne d'affiliation est dans l'URL. Un code affilié est marqué par un x
suivi d'un int
et n'apparaîtra qu'à la fin d'une URL (mais avant la chaîne de requête).Asp.Net MVC Routing - comment faire correspondre l'ensemble de l'URL?
L'idée est que je vais extraire l'ID d'affilié, faire un enregistrement, puis faire un 301 à la même demande sans l'ID d'affilié.
Par exemple:
http://www.domain.com/x32
http://www.domain.com/x32/
http://www.domain.com/path/to/something/x32
http://www.domain.com/x32?query=string
http://www.domain.com/x32/?query=string
http://www.domain.com/path/to/something/x32?query=string
http://www.domain.com/path/to/something/x32/?query=string
Je cette route
routes.Add(new Route("{url}/x{affiliateExternalId}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(
new { controller = "Home", action = "LogCookieAndRedirect" }
),
Constraints = new RouteValueDictionary(new { affiliateExternalId = @"\d{1,6}" })
});
qui correspond uniquement à
http://www.domain.com/path/x32
http://www.domain.com/path/x32/
Que dois-je faire pour correspondre à tout et passer la chaîne de requête le controlle? Il y a un opérateur *
que je suppose que je devrais utiliser, mais je ne peux pas l'obtenir pour faire ce dont j'ai besoin.
Eh oui, je peux changer la structure de l'URL. La 2ème méthode devrait être parfaite. Merci. –