Sidebar benutzerdefinierter Link entfernt internen Hostnamen aus Query-Parametern externer URLs

Beim Speichern eines benutzerdefinierten Seitenleisten-Links mit einer externen URL, die den Hostnamen der Website in einem Abfrageparameter enthält, wird der Hostname fälschlicherweise aus dem Abfrageparameter entfernt, wodurch die URL beschädigt wird.

Schritte zur Reproduktion

  1. Gehen Sie zu den Seitenleisteneinstellungen und fügen Sie einen benutzerdefinierten Link hinzu/bearbeiten Sie ihn.
  2. Legen Sie die URL auf eine externe URL fest, die den Hostnamen Ihrer Website in einem Abfrageparameter enthält, z. B. eine YouTube-Weiterleitungs-URL, die auf Ihre eigene Website verweist.
  3. Speichern

Erwartetes Verhalten
Die vollständige eingegebene URL bleibt erhalten, einschließlich des Hostnamens im Abfrageparameter.

Tatsächliches Verhalten
Der Hostname der Website wird aus dem Abfrageparameter entfernt. Der Abfrageparameter-Teil ändert sich beispielsweise von ?q=https://mysite.com/some-path/ zu ?q=/some-path/, was zu einer fehlerhaften Weiterleitungs-URL führt.

Anwendungsfall
Unser Forum (teskas.net, eine Tesla-Besitzer-Community) hat einen Seitenleisten-Link, der einen YouTube-Weiterleitungsendpunkt verwendet, um den Vollbildmodus im Tesla-In-Car-Browser auszulösen. Der Abfrageparameter muss unsere vollständige Website-URL einschließlich des Hostnamens enthalten, damit die Weiterleitung funktioniert.

Problemumgehung
URL-kodieren Sie den Hostnamen-Teil im Abfrageparameter und schreiben Sie direkt in die Datenbank, um die Formularnormalisierung zu umgehen.

Umgebung

  • Selbst gehostet, neueste Version
1 „Gefällt mir“