Существует ли какой-либо способ выявить неработающие ссылки и одновременно исправить их?
Привет, Кевин ![]()
Можешь определить, что такое «битая ссылка» в твоем контексте?
Это:
-
Ссылка в сообщении пользователя?
-
Внутренняя ссылка?
-
Внешняя ссылка?
-
Ссылка, ведущая на ресурс, который больше не существует (ошибка 404)?
-
Ссылка, ведущая на другой ресурс, чем раньше?
Как узнать, что ссылка временно «бита» (например, целевой ресурс временно недоступен по какой-то причине)? Ссылка может быть нерабочей несколько минут, часов, дней или недель, а затем снова начать работать.
Её могут удалить, изменить, обновить, или она может стать нерелевантной. Как определить, что именно произошло?
Что такое исправление битой ссылки?
-
Удаление ссылки?
-
Замена URL на другой?
-
Как понять, на какой релевантный рабочий URL заменить битую ссылку?
В любом случае, тебе понадобится собственный скрипт: встроенной такой функции нет. ![]()
Отвечать на это не моя работа, но в целом на всем веб-пространстве битая ссылка — это ссылка, возвращающая 404, независимо от того, внутренняя она или внешняя (конечно, внутренние ссылки часто вызывают более тревожную ситуацию).
Исправление может быть любым из следующих.
Получить список 404, а затем либо исправить URL, либо удалить тег <a>, возможно? Это довольно распространённый способ на всех других платформах, которыми я пользуюсь,
Можете ли вы порекомендовать какой-либо инструмент для проверки и исправления неработающих ссылок?
Согласен, это наиболее распространённый случай, но это создаёт проблемы, например временные 404.
Вы здесь достаточно давно, чтобы знать, что мнение каждого ценится ![]()
(кстати, моя работа тоже заключается в том, чтобы давать людям возможность высказывать своё мнение)
Их не следует использовать. Сначала должен быть ответ 302, ведущий на (общую) страницу, где объясняется ситуация. Когда временность заканчивается, статус должен измениться на 200, 301 или 410.
Однако, если в постах используются ссылки, вызывающие временные 404, это известный частный случай. Наиболее распространённые — это реальные неработающие внешние ссылки, которые нужно исправить.
Хорошая новость в том, что такие ссылки открываются довольно редко, полагаю.
Да,
Ну, я имел в виду, что как бы отвечал от имени автора темы (OP), и это не очень вежливый поступок.
В моём случае неработающие ссылки появились, когда клиент провёл незначительное изменение домена с “.ai” на “.com” — все ссылки на сообщения внутри форума стали нерабочими. Уверен, наверняка существовал более простой способ исправить это. Но я просто вручную отредактировал множество постов, заменив .ai на .com. Также пришлось использовать функцию перестроения HTML, чтобы исправить загруженные изображения в постах. Довольно досадно.
Вы можете выполнять поиск и замену через консоль Rails, верно?
Вероятно, но всё ещё довольно новичок во многих вещах с Discourse. Нужно почитать и узнать больше. Поможет ли что-то подобное исправить загруженные изображения в постах? Также, казалось, это повлияло на эмодзи в старых постах. Честно говоря, они должны были посоветоваться со мной, так как при ребрендинге сайта ранее возникала та же проблема. На мой взгляд, не было никакой необходимости или реальной выгоды в переходе с .ai на .com, поскольку сайт работал более 3 лет на .ai.
Кроме того, приложение, установленное любым пользователем, перестало работать, то же самое произошло и с другими, использующими исходный URL для доступа к сайту.
В Discourse такой функции нет, и обнаружение «битых ссылок» (мы предположим, что речь о 404) потребует написания пользовательского скрипта.
Мне кажется, что определенное количество владельцев, особенно крупных сайтов, были бы заинтересованы в инструменте/скрипте/плагине, который мог бы хотя бы выполнить первый шаг — просто проверить и выявить ошибки 404? Я бы поддержал это финансово, если цена будет разумной.
Первое решение, которое приходит в голову, — это rail-скрипт, который перебирает содержимое постов, находит ссылки, делает запросы к ним, проверяет коды состояния и выполняет необходимые действия: удаляет их, заменяет (для таких действий потребуется перекомпиляция), записывает в лог и так далее. ![]()
Сравнение WordPress и Discourse довольно бессмысленно, так как технологии и идеи настолько различны, но на WordPress это тривиальная задача: использовать бесплатный плагин, который проверяет исходящие ссылки и, если ответ отличается от 200 OK, очищает хотя бы те ссылки, которые вернули статус 4xx, составляет список и уведомляет администратора по электронной почте.
Возможно ли это в таких приложениях, как Discourse, я не знаю. Нужна ли такая функциональность… тоже не знаю, потому что всем всё равно, и фраза хорошие ссылки никогда не умирают сменилась на все ссылки превратятся в зомби. Википедия полна битых ссылок, и никому нет дела, даже самой Википедии и её редакторам.
У нас есть такая вещь, как флаги. Мы можем переложить задачу уведомления на пользователей и научить их правильно использовать флаги, но, я уверен, это будет непросто.
Давайте будем честны. Очень мало администраторов и модераторов готовы исправлять ссылки, которые никогда не используются после публикации. Поэтому «тестер ссылок» был бы приятным дополнением, но является ли он полезным инструментом? На моём самом крупном сайте на WordPress огромное количество битых исходящих ссылок. Их нужно исправить, и я исправлю, если они мне понадобятся, но в противном случае… у меня просто нет времени (или желания…).
Проверка битых ссылок была бы отличным решением! Наш экземпляр Discourse не является публичным, поэтому я не могу использовать для этого типичные инструменты. Он используется как форум поддержки и база знаний, поэтому мы ожидаем, что со временем нам придется иметь дело со ссылками на документацию, размещенную в других местах, которые могут перестать работать.