@kirill-93

Почему ссылки без протокола открываются как относительные?

Мне кажется, что раньше такой проблемы не было. Ссылки, которые публикуют пользователи открываются как относительные моего домена, если ссылки указаны без протокола.
Как вы проверяете ссылки? Подставляете http, если ничего нет?
  • Вопрос задан
  • 2705 просмотров
Решения вопроса 1
Moskus
@Moskus
Открываются, как относительные, потому что они и записаны, как относительные (согласно синтаксису URI):
https://en.wikipedia.org/wiki/Uniform_Resource_Ide...
Только наличие в URL символов // позволяет однозначно определить, является ли то, что идет после них, адресом хоста. Потому что у вас на сайте foobar.com может быть подкаталог yandex.ru, и относительная ссылка на этот каталог с главной страницы будет в коде выглядеть как <a href="yandex.ru">xxx</a>. А чтобы перейти действительно на сайт Яндекса, вам нужно писать либо полностью с протоколом https://yandex.ru, либо без протокола, но //yandex.ru.
Это - способ разрешения неоднозначности.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Так вроде всегда было
Еще вроде можно просто два слэша поставить
<a href="//google.com"></a>
так вроде тоже работать будет
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы