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
- Gehen Sie zu den Seitenleisteneinstellungen und fügen Sie einen benutzerdefinierten Link hinzu/bearbeiten Sie ihn.
- 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.
- 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