Перенаправление старых ссылок форума на Discourse

Я пытаюсь мигрировать с форума на базе WordPress на Discourse.

Мой старый URL выглядел так:

https://example.com/question/questioncontent

А в Discourse темы создаются с URI:

https://example.com/t/questioncontent

Я скопировал весь контент со старого форума на новый. Я не очень технически подкован, поэтому не хотел рисковать. У меня около 18 постов, поэтому я не стал использовать скрипты и скопировал весь контент вручную.

Теперь мой вопрос: как можно настроить перенаправление (редирект) старых ссылок форума, которые уже проиндексированы поисковыми системами?

Я пробовал использовать функцию постоянных ссылок (permalink) для перенаправления, но всё равно не могу его настроить.

Не упустил ли я что-то? Пожалуйста, дайте мне руководство по правильной процедуре.

Посмотрите в админке: Настроить → Постоянные ссылки. Вы можете создать перенаправление с 18 старых URL-адресов на соответствующие новые темы.

Я попробовал, но, к сожалению, перенаправления не произошло.

Какая-нибудь помощь? У меня это не работает.

Я написал плагин для этого.

Измените строку выше на:
get '/question/:slug', to: redirect('/t/%{slug}')

Спасибо, попробую и дам знать

Не могу представить, почему нет, но без дополнительной информации о том, что вы сделали, это невозможно сказать. Хотя я не понимаю, зачем вам вообще нужен плагин. Для версии 18 их можно просто создать вручную, хотя, возможно, стоит использовать нормализацию постоянных ссылок, чтобы сделать это за один раз.

Редактирование: постоянные ссылки работают только для входящих ссылок, а не для ссылок внутри Discourse. Обычно такие ссылки в постах переписывают.

Я перенаправлял ссылки со старого форума на Discourse. Не знаю, почему у меня это не работает.

Хотел уточнить:
допустим, моя старая ссылка — 1. forum.example.com/must-read-rules,
а ссылка в Discourse — 2. forum.example.com/t/must-read-rules/47.

Правильно ли я понимаю, что в поле «New» нужно ввести 1, а в поле «Destination» — 2?

Извините за глупый вопрос!

Введите must-read-rules в поле URL, оставьте «ID темы» выбранным и укажите 47 в поле ID темы. Вот так:

image

Опция перенаправления в разделе «Настроить» не работает у меня.

Как её можно исправить?

Вы пытаетесь использовать это для перенаправления входящих ссылок на контент Discourse или для перенаправления ссылок внутри Discourse (т. е. между страницами).

Верно! Перmalink работает только для входящих URL-адресов. Я уверен, что это и есть проблема.

@pfaffman @Stephen Я мигрирую с WordPress на Discourse. Я перенаправляю свои старые URL-адреса на сгенерированные Discourse URL-адреса.

например: forum.example.com/question/hey на forum.example.com/t/hey

Входящие ссылки будут перенаправлены функцией постоянных ссылок. Внутренние ссылки между публикациями необходимо исправить вручную, чтобы они указывали на новые адреса; автоматическое перенаправление постоянных ссылок в этом случае не сработает.

Какие есть способы заставить это работать?
Первая ссылка — это мой предыдущий форум на WordPress, а вторая — мой форум на Discourse.
Как мне успешно настроить перенаправление?

Не могли бы вы, пожалуйста, подсказать, как редактировать код? Есть ли какое-то руководство? Я установил плагин, но не нашёл конкретное место, о котором вы говорите для редактирования слага.

К сожалению, не получилось :pensive_face:

Вам придётся сделать форк плагина.

Могу ли я добавить туда несколько URL-адресов?
Или только структуру URL?