Wie erhalte ich den Pfad für Anforderungsreferenten?


81

Ich brauche den Weg des Überweisers. Ich möchte den Domainnamen nicht. Zum Beispiel, wenn der Referrer http://www.google.com/adsenseich möchte /adsense.

Antworten:


136

request.refererGibt einen String zurück, aber Sie können Rubys URI-Modul verwenden , um ihn zu verpacken, und ihn dann einfach nach seinem Pfad fragen:

if URI(request.referer).path == '/adsense'

4
Ich verwende diese URI-Zeile (request.referer) und erhalte weiterhin den Fehler URI :: InvalidURIError: bad URI (ist nicht URI?). Irgendeine Idee, was das sein könnte?
— kateray

Schwer zu sagen, was es ohne weitere Informationen sein könnte. Versuchen Sie, nur die request.refererin die Protokolle zu drucken, um zu sehen, warum Ruby es möglicherweise nicht mag. (PS: Vielleicht möchten Sie Ihre Frage als separate Frage stellen, anstatt als Kommentar zur Antwort auf eine andere Frage. :-))
— Chadoh

1
Schauen Sie sich diese Frage an, um mehr darüber zu erfahren URI::InvalidURIError.
— James Chevalier

Seltsamerweise kann der Referrer ein ungültiger URI sein, auch wenn er nicht leer ist. Ich habe dies mit einem Referrer entdeckt, der ein '|' enthält, das URI :: InvalidURIError ausgelöst hat. Ich verpacke die URI.Parse in einen Start- / Rettungs- / Endblock.
— Tomf

28

Sie können mit auf Referer zugreifen

request.referer

3
Aber Referrer gibt volle URL. Ich brauche den Pfad
— Rails101

2
Vielen Dank für den hilfreichen Link @Fivell. Ich habe diesem Thread selbst eine Antwort mit den Informationen hinzugefügt, damit zukünftige Besucher nicht von Link-Rot geplagt werden.
— Chadoh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.