Постоянные ссылки и специальные HTML-символы

Здравствуйте,

Я пытаюсь ввести постоянные ссылки (что работает нормально), но сталкиваюсь с проблемой при вводе URL-адресов со специальными символами.

Например, при вводе URL

display/exacom/ADO+%3C%3E+Jira+Cloud%3A+Date+time+sync

он преобразуется в

display/exacom/ADO+%3C%3E+Jira+Cloud%253A+Date+time+sync

Поскольку &#25 — это HTML-аналог символа %.

Однако, когда я пытаюсь перейти по ссылке

https://community.exalate.com/display/exacom/ADO%3C%3E+Jira+Cloud%3A+Date+time+sync

страница не находится.

Попытка использовать HTML-сущность при вводе URL также не работает, так как оригинальный URL тогда не находится.

Вопрос: какой правильный способ ввода постоянных ссылок, содержащих такие символы (и избежание двойного HTML-кодирования)?

Просто предположение: экранирование, например \%3A?

Попробовал

bla\%3Abla

Получается

bla%5C%253Abla

Может, стоит попробовать ввести их в Rails, чтобы получить больше контроля над экранированием. Не знаю, поможет ли это, но я бы попробовал именно это следующим шагом.

Мы используем вариант хостинга от discourse.org
Я не думаю, что у нас есть такая возможность.

Эти отображаемые ссылки выглядят неправильно — похоже, в них отсутствует первая часть.

Вы пробовали использовать сокращение ссылок TinyURL?

Привет, Лили,

Спасибо.

Это страницы вики, которые мы опубликовали на нашем старом сайте сообщества.
Например,

https://community.exalate.com/display/exacom/ADO<>+Jira+Cloud%3A+Date+time+sync

сейчас доступна по адресу

https://oldcommunity.exalate.com/display/exacom/ADO<>+Jira+Cloud%3A+Date+time+sync

Конечно, люди, которые попытаются открыть первую ссылку сегодня, попадут на сайт Discourse и получат ошибку 404. Вот почему мы хотим использовать функцию постоянных ссылок.

Проблема в том, что невозможно ввести URL таким образом, чтобы он был найден, и поэтому перенаправление не срабатывает.

Использование TinyURL невозможно, так как пользователи будут использовать именно эти ссылки.

Сколько их и есть ли у всех одинаковый мусор в заголовке?

У всех ли есть xxx%3A+slug?

Очевидно, я не понимаю, что вы делаете. Я только что успешно создал тестовую постоянную ссылку на моём сайте на эту страницу:

когда я перехожу на /test на моём сайте, меня сразу перекидывает на эту страницу.


редакция: ладно, я неправильно понял ваше исходное сообщение. Теперь я вижу, что вы пытаетесь сделать. Вы пытаетесь использовать эту странную сложную ссылку в качестве постоянной ссылки. Ох. Да, не знаю, возможно ли это без какой-то специальной экранировки. :thinking:

Точно — спасибо, что нашли время.

У всех ли есть xxx%3A+slug?

Нет.

Мы создали страницу с обзором всех вариантов использования:

Там вы можете увидеть некоторые ссылки и то, как они закодированы в URL.

Хм. Перенести их было бы проще до того, как вы запустили своё сообщество.

Большинство из них, кажется, в порядке.

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

Исходный URL используется в нескольких местах и не обязательно находится под нашим контролем.

Возможность ввести исходный URL решила бы эту проблему.

Лили сейчас ищет решение…

Спасибо

Лили:

При беглом просмотре большинство URL-адресов должны работать нормально.

Кажется, в остальных есть символ «больше» (>), и всё, что после него, — это обычные символы. Так что вы можете настроить постоянную ссылку так, чтобы она удаляла первую часть до символа «больше», и всё заработает как надо.

Привет, Джей,

URL-адреса на той странице были закодированы перед добавлением, так как Composer также их кодирует — это ожидаемо.

Это не оригинальные URL-адреса.

Сработает ли, если я предоставлю текстовый файл с оригинальными?

Фрэнсис