Heim  >  Artikel  >  Backend-Entwicklung  >  Wie drucke ich einen URL-Pfad ohne Parameter?

Wie drucke ich einen URL-Pfad ohne Parameter?

王林
王林nach vorne
2024-02-11 18:57:231122Durchsuche

Wie drucke ich einen URL-Pfad ohne Parameter?

php-Editor Strawberry ist hier, um Ihnen vorzustellen, wie Sie den URL-Pfad ohne Parameter drucken können. Bei der Webentwicklung müssen wir häufig die URL der aktuellen Seite abrufen und den Parameterteil entfernen, so dass nur der Pfadteil übrig bleibt. Dies hat den Vorteil, dass die URL prägnanter gestaltet werden kann und sich auch positiv auf die SEO-Optimierung auswirkt. In PHP können wir diese Funktion durch einfachen Code implementieren. Als nächstes werde ich die spezifische Implementierungsmethode im Detail vorstellen. Lasst uns gemeinsam lernen!

Frageninhalt

Ich habe eine erholsame API mit Gorilla/Mux. Es wird im Pfad parametrisiert. Ich habe es so erstellt:

r := mux.NewRouter()
subr := r.PathPrefix("/v1").Subrouter()
subr.Handle("/organizations/{orgId}/projects/{projectId}", CreateProject()).Methods(http.MethodPost)

Bei der Erfassung der Anfrage und Protokollierung der Ergebnisse möchte ich das jedoch nicht protokollieren

/组织/fff-555-aaa9999/projects/amazing-project

Das erhalte ich, wenn ich den r *http.request.url-Wert analysiere.

Stattdessen möchte ich den anfänglichen Router-Wert von /organizations/{orgid}/projects/{projectid} erhalten, damit ich das in der Protokollierung filtern kann.

Gibt es mit Gorilla/Mux eine Möglichkeit, den Router-Pfad ohne die tatsächlichen Parameter, aber stattdessen Parametervariablen abzurufen?

Workaround

In der createproject-Funktion können Sie Folgendes verwenden:

func CreateProject(w http.ResponseWriter, r *http.Request) {
    path, _ := mux.CurrentRoute(r).GetPathTemplate()
    fmt.Println(path)
}

Das obige ist der detaillierte Inhalt vonWie drucke ich einen URL-Pfad ohne Parameter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen