Ich stolperte auf seltsame Verhalten heute auf einer Website bei der Arbeit. Unser SEO-Berater wollte einige merkwürdig aussehende Links, die vom Googles-Index entfernt wurden, eine scheinbar unkomplizierte Aufgabe. Aber es erwies sich als sehr schwierig.Weird URL Umgehung Routing, Klammer Großbuchstaben Klammer alles zwei schließende Klammern
Die Website war eine .net MVC 5.2.3 Anwendung. Wir haben uns das Routing, unsere eigenen Bibliotheken usw. angesehen. Nichts Seltsames. Nach einer Weile gaben wir auf und versuchten einfach eine Weiterleitungsanforderung an diese URLs, indem wir in web.config eine Regel aufstellten. Stellt sich heraus, diese URL: s sind unübertroffen! Irgendwie unter den richtigen Bedingungen scheint der kritische Teil der URL Regeln zu vermeiden, die später in der MVC-Anwendung weitergeleitet werden.
Wir haben die mystische URL: s auf das Format (T(anything))
eingegrenzt, wo T durch jeden Großbuchstaben und alles kann eh sein, alles. Dies wird am Anfang der URL platziert, als wäre es ein Verzeichnis. In regex: \([A-Z]\([a-zA-Z0-9]*\)\)
habe ich getestet und das gleiche Verhalten auf:
- .net MVC5 Websites
- .net MVC3 Websites
- .net Web Forms-Sites
- http://asp.net
- http://stackoverflow.com
Einige Beispiele aus stackoverflow.com:
- Umgehungen Routing: https://stackoverflow.com/(K(jonas))/questions
Routes normal (404): https://stackoverflow.com/jonas/questions
Umgehungen Routing: https://stackoverflow.com/(G(hello))/users/1049710/jonas-%C3%84ppelgran
- Routes normal (404): https://stackoverflow.com/gandhello/users/1049710/jonas-Äppelgran
Es scheint nicht zu beeinflussen ganzes Web, also sollte es kein Browser- oder HTTP-Problem sein. Einige Beispiele:
- Routen normal (404): http://php.net/(T(testing))/downloads
- Routen normal (404): https://www.iana.org/(T(testing))/domains/reserved
Kann jemand erklären, was los ist?
Und was kann ich tun, um zu verhindern, dass diese URL: s Routing umgehen?