Asp.Net MVC Routing - wie kann ich die gesamte URL abgleichen?

Ich versuche, eine Sammelroute zu erstellen, um zu verfolgen, wann sich eine Partnerzeichenfolge in der URL befindet. Ein Affilite-Code ist mit einem gekennzeichnetx gefolgt von einemintund werden nur am Ende einer URL (aber vor der Abfragezeichenfolge) angezeigt.

Die Idee ist, dass ich die Partner-ID extrahiere, etwas protokolliere und dann eine 301-Operation für dieselbe Anfrage ohne die Partner-ID durchführe.

Zum Beispiel:

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

Ich habe diese 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}" })
});

Was nur passt

http://www.domain.com/path/x32
http://www.domain.com/path/x32/

Was muss ich tun, um alles abzugleichen und die Abfragezeichenfolge an den Controller zu übergeben? Da ist ein* Operator, von dem ich vermute, dass ich ihn verwenden sollte, aber ich kann ihn nicht dazu bringen, das zu tun, was ich brauche.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage