BESARBEITUNG: Titel des Themas geändert, um das Problem widerzuspiegeln, das ich dank der Antworten unten entdeckt habe
Ich erlebe ein seltsames Verhalten bei Permalinks in meiner Migrationsarbeit.
Mein Problem ist nicht das, dass interne Links nicht weiterleiten. Ich teste dies einfach, indem ich URLs in die Adressleiste meines Browsers einfüge.
Das sind die beiden Weiterleitungen, die in meinen Tests stattfinden sollen:
das ist eine Beitrags-Weiterleitung, sollte zum zweiten Beitrag weiterleiten wie folgt:
das ist eine Themen-Weiterleitung, sollte gehen zu:
Ich weiß, dass meine Normalisierungen einwandfrei funktionieren. Meine Regex ist
/(?:.*)(\/)(?<topicid>\d*.)-(.[^\/#\?]*)(?<parm>\?(\w*)[=](?<start>\d+))?(?:\/)?(\D+(\/)?)?(?<postid>\d+)?(?:\/)?/normalized.\k<topicid>.\k<postid>
Und ich überprüfe sie in der rails-Konsole:
irb(main):069:0> Permalink.normalize_url('https://community.suitecrm.com/languages/17978-why-two-italian-language-packs#16249')
=> "normalized.17978.16249"
irb(main):068:0> Permalink.normalize_url('https://community.suitecrm.com/languages/17978-why-two-italian-language-packs')
=> "normalized.17978."
Das ist das, was ich beabsichtigt habe. Ich habe dies in meiner Permalinks-Tabelle:
Und so sieht es aus, wenn man die Datenbank betrachtet:
Aber wenn ich dies in die Browser-URL einfüge
wird es umgeleitet zu
Anstatt wie es sein sollte:
Also sehe ich den ersten Beitrag, er scrollt nicht zum zweiten, wie es sollte.
Warum wird dieser #16249-Hash wieder hinzugefügt, wenn meine Normalisierung ihn entfernt hat?
Eine andere Möglichkeit, diese Inkonsistenz aufzuzeigen (wenn auch etwas künstlich), ist, folgende Weiterleitungen aus der Adressleiste des Browsers zu versuchen:
https://community.suitecrm.com/normalized.17978.
wird korrekt weitergeleitet zu:
Reports disappeared - 💬 General Discussion - SuiteCRM
Und Why two Italian language packs? - #2 by roberto - Translation and Language Packs - SuiteCRM
wird korrekt weitergeleitet zu
Reports disappeared - #2 by erevodifosin - 💬 General Discussion - SuiteCRM
Warum funktioniert es also nicht, wenn man den normalen Prozess durchläuft?


