Внедрение на сайт протоколонезависимых ссылок

12
ВC
На сайте с 02.02.2006
Offline
459
1003

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

Применительно к графике это будет иметь вид

//img/mega-image.jpg

Применительно к файлам

<a href="//catalog/">

Просмотрев в сети три сайта, которые открываются по обоим протоколам, я этого не обнаружил. У всех трех просто обычные относительные ссылки от корня вида

/img/mega-image.jpg

<a href="/catalog/">

А как делаете лично Вы?

Александр Смирнов
На сайте с 30.08.2007
Offline
102
#1

Так называемые протоколонезависимые ссылки, начинающиеся с // используются браузером при подключении внешних ресурсов.

Все ссылки на вашем ресурсе и так будут работать, ничего переделывать не надо. Нужно скорректировать только ссылки на CDN-ресурсы и т.п.

Например, Ваш домен: example.com

Внешний ресурс: static.example.com

Ссылки на внешние ресурсы должны быть протоколонезависимые:

//static.example.com/js/jquery.min.js

Разработаю веб-сервисы на Yii2 фреймворке от 150 тыс. руб. в мес. Обучу программированию на Yii2
ДП
На сайте с 23.11.2009
Offline
203
#2
Владимир-C:

Применительно к графике это будет иметь вид
//img/mega-image.jpg


Применительно к файлам
<a href="//catalog/">

А можно ссылку, где вы именно подобные примеры увидели?

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

т.е.

//site.ru/img/mega-image.jpg

тогда это корректная запись.

В принципе браузеры по сути дописывают к адресам неуказанные компоненты справа-налево.

т.е. если указать

image.jpg или img/image.jpg - допишут протокол, хост, путь относительно "текущей папки"

если /path/image.jpg - то допишут протокол и хост

если //site.ru/path/image.jpg - то протокол текущий допишут.

SeVlad
На сайте с 03.11.2008
Offline
1609
#3
_AXE_:
Так называемые протоколонезависимые ссылки, начинающиеся с // используются браузером при подключении внешних ресурсов.

Не обязательно на внешние. На внутренние ж тоже никто не запрещает.

_AXE_:
Все ссылки на вашем ресурсе и так будут работать, ничего переделывать не надо.

Если только они не абсолютные с указанием протокола. А многие движки (ВП в частности) именно так и делают. Абсолютные в см.

Владимир-C, :

Дикий пионер:
Вообще с двойными слешами (как вам правильно подсказали уже тут) пишут имя хоста еще.
Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
ВC
На сайте с 02.02.2006
Offline
459
#4
Дикий пионер:
А можно ссылку, где вы именно подобные примеры увидели?

Вот смотрите: https://devaka.ru/articles/moving-to-https

Речь идет именно о внутренней перелинковке.

SeVlad
На сайте с 03.11.2008
Offline
1609
#5
Владимир-C:
Вот смотрите:

Я там не вижу

Владимир-C:
<a href="//catalog/">

Вижу только

<a href="//домен/">

И хотя никто вроде не запрещает использовать для внутрянка //домен/, но как-то принято / (один слеш, без домена). Это относительная ссылка относительно корня сайта.

ВC
На сайте с 02.02.2006
Offline
459
#6

Цитирую то, на что я обратил внимание:

— Смена ссылок внутренней перелинковки с абсолютных на относительные. Относительные ссылки бывают двух типов:
1. Относительные вне зависимости от домена
https://devaka.ru/about/ — абсолютная.
/about/ — относительная.
2. Относительные вне зависимости от протокола.
https://devaka.ru/about/ — абсолютная
//devaka.ru/about/ — относительная
Необходимо использовать ссылки последнего вида, когда вы исключаете название протокола. Источник: Devaka.ru

Последний вид - это вот что: //devaka.ru/about/

Причем, речь идет о перелинковке. То есть, о внутренних ссылках.

И вот что пишет Гугл: https://developers.google.com/web/fundamentals/security/encrypt-in-transit/make-intra-site-urls-relative?hl=ru

SeVlad
На сайте с 03.11.2008
Offline
1609
#7

Владимир-C, у Сергея всё верно написано. И об этом же тут говорят.

У русского гугла же в одном месте походу что-то потеряно или лишнее (далее все разъясняется).

Нужно читать как-то так

убедитесь, что вы используете относительные пути, либо уберите протокол. в виде //example.com/something.js

ибо в //example.com/something.js Нет протокола. Это правильная протоколонезависимая ссылка.

ВC
На сайте с 02.02.2006
Offline
459
#8

Ну да, там в примере у Гугла есть

  <script src="/jquery.js"></script>

<link rel="stylesheet" href="//assets.example.com/style.css"/>
<img src="//img.example.com/logo.png"/>;
<p>Читайте нашу новую <a href="/2014/12/24/">интересную
публикацию о кошках!</a></p>

То есть, если ссылка содержит домен, в том числе и домен этого же сайта, то идет через "//", а если без упоминания домена, то просто от корня "/".

Вроде, так?

SeVlad
На сайте с 03.11.2008
Offline
1609
#9
Владимир-C:
То есть, если ссылка содержит домен, в том числе и домен этого же сайта, то идет через "//", а если без упоминания домена, то просто от корня "/".

Вроде, так?

Да.

// обычно используется для вешних адресов.

Для внутяков обычно простая относительная ссылка (/), без домена.

Александр Смирнов
На сайте с 30.08.2007
Offline
102
#10

Поясняю своё первое сообщение.

Ссылки на внешние ресурсы: img.example.com или assets.example.com должны начинаться с двух слешей.

Локальные ресурсы – ссылки на страницы и т.п. указываются просто относительными (с одним слешем).

<script src="/js/jquery.min.js"></script>
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий