РЕДАКТ: изменил заголовок темы, чтобы он соответствовал найденной проблеме, спасибо за ответы ниже
У меня наблюдается странное поведение с постоянными ссылками при работе над миграцией.
Моя проблема не в том, что внутренние ссылки не перенаправляют. Я просто тестирую это, вставляя URL-адреса в адресную строку браузера.
Вот два перенаправления, которые должны происходить в моих тестах:
Это перенаправление для поста, оно должно вести ко второму посту следующим образом:
Это перенаправление для темы, оно должно вести к:
Я знаю, что моя нормализация работает корректно. Мой регулярное выражение:
/(?:.*)(\/)(?<topicid>\d*.)-(.[^\/#\?]*)(?<parm>\?(\w*)[=](?<start>\d+))?(?:\/)?(\D+(\/)?)?(?<postid>\d+)?(?:\/)?/normalized.\k<topicid>.\k<postid>
Я проверяю это в консоли rails:
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."
Это именно то, что я планировал. В моей таблице Permalinks у меня следующее:
А вот так это выглядит в базе данных:
Но когда я ввожу это в адресную строку браузера:
оно перенаправляется на:
Вместо того, чтобы вести к:
Так что я вижу первый пост, но он не прокручивается ко второму, как должно быть.
Почему хеш #16249 снова добавляется, если моя нормализация его удалила?
Другой способ выявить это несоответствие (хоть и немного искусственный) — попробовать следующие перенаправления из адресной строки браузера:
https://community.suitecrm.com/normalized.17978.
правильно перенаправляет на:
Reports disappeared - 💬 General Discussion - SuiteCRM
А Why two Italian language packs? - #2 by roberto - Translation and Language Packs - SuiteCRM
правильно перенаправляет на:
Reports disappeared - #2 by erevodifosin - 💬 General Discussion - SuiteCRM
Так почему же это не работает при обычном процессе?


