Проверка ссылки на наличие https://

12
R
На сайте с 01.12.2012
Offline
86
699

Всем привет.

У меня на сайте есть раздел с объявлениями, где через дополнительное поле пользователь также может добавить URL-адрес. Но дело в том, что ссылки добавляют по-разному - с https:// или без https://. Данное значение прописывается в ссылке в атрибут rel.

Если пользователь добавил ссылку без https://, то браузер автоматически прописывает адрес сайта перед ссылкой. То есть ссылка получается примерно такой https://sait.ru/obyavleniya/prochee/www.silka.ru.

Это не было бы проблемой, если бы был только один раздел с объявлениями. Просто удалил бы этот адрес при помощи js. Но дело в том, что таких разделов много.

Подскажите, возможно ли при помощи js проверить адрес на наличие https:// до того, как браузер добавит адрес сайта?

По вышеуказанной причине такой вариант не сработал(

$(document).ready(function () {
        var urlob = document.querySelector('#url');
        var urlobHref = urlob.href;
        if (!urlobHref.match(/^[a-zA-Z]+:\/\//)) {
                urlobHref = 'http://' + urlobHref;
                urlob.href = urlobHref;
        }
});

Заранее признателен всем за подсказку!

lealhost
На сайте с 07.06.2014
Offline
136
#1

Не проще решить проблему на стороне сервера, поправив их в базе?

И добавить коррекцию ссылок (тоже на стороне сервера) перед добавлением в базу.

D.iK.iJ
На сайте с 26.05.2013
Offline
225
#2

Я на сайте URL проверяю на наличие или отсутствие в нем домена вот примерно таким кодом:

if (-1 == href.indexOf('https://')) { тут если в  href нет  https://

но можно переделать как угодно. Насколько это правильно в Жабаскрипте, к сожалению, не подскажу. Но оно работает.

Адаптивный дизайн в 2 строчки ( https://dikij.com/wm/adaptaciya-saytov.php ). + Принимаю заказы любой сложности ( https://searchengines.guru/ru/forum/926323 ). 💎 Еще я делаю классные кулоны с опалами ( https://mosaicopal.ru/ ).
W1
На сайте с 22.01.2021
Offline
284
#3
Radrigo :
Данное значение прописывается в ссылке в атрибут rel.

Это как?

Radrigo :
Если пользователь добавил ссылку без https://, то браузер автоматически прописывает адрес сайта перед ссылкой.

И в чём проблема?

Мой форум - https://webinfo.guru –Там я всегда на связи
S
На сайте с 26.02.2017
Offline
67
#4

Radrigo, дело конечно хозяйское. Хозяин - барин. Зелёный замочек - это главное.

Но от куда у вас возникло понимание того, что пользователь вашего сервиса, при публикации ссылки, не знает с http его ссылка или с https.

А что ссылки ftp: или magnet:  не бывают?

Вообще сейчас много сайтов прекрасно работающих без ssl сертификатов. И вполне хорошо себя чувствующих.

Когда вы программно без ручной проверки поправите ссылку, то не факт что она останется работоспособной.

E
На сайте с 01.10.2017
Offline
94
#5
Radrigo :
У меня на сайте есть раздел с объявлениями, где через дополнительное поле пользователь также может добавить URL-адрес. Но дело в том, что ссылки добавляют по-разному - с https:// или без https://.

Делайте коррекцию на стороне сервера перед сохранением в базу данных и уже имеющиеся в базе данных значения приведите в порядок.

Чтобы подтолкнуть пользователя к правильному вводу, можно в интерфейсе перед основным полем разместить раскрывающийся список с https:// (по умолчанию) и http://, после чего "собирать" адрес.

Не обязательно сохранять схему и :// в явном виде. В нескольких моих сервисах за хранение схемы (http/https) отвечает бит специального поля. За хранение признака наличия www. часто тоже. Пример обработки на PHP:

    if (strncasecmp($link, 'https://', 8) == 0)
    {
        $link = substr($link, 8);
        $mode |= 8;
    }
    elseif (strncasecmp($link, 'http://', 7) == 0)
    {
        $link = substr($link, 7);
    }
    else
    {
        // генерация ошибки, коррекция адреса и т.п.
    }

    if (strncasecmp($link, 'www.', 4) == 0)
    {
        $link = substr($link, 4);
        $mode |= 4;
    }
Домены на продажу: https://p20.ru/collection/domains-for-sale
W1
На сайте с 22.01.2021
Offline
284
#6
ТС сделал вброс и удалился, а форумчане пытаются ему помочь, но непонятно в чём. В стартпосте ситуация описана некорректно, и проблема непонятна. На мой взгляд, тут пока нечего обсуждать.
E
На сайте с 01.10.2017
Offline
94
#7
webinfo #:
и проблема непонятна
Все понятно. Из-за ввода некоторых адресов без схемы и :// получаются некорректные адреса в ссылках (относительные, например href="example.com").
W1
На сайте с 22.01.2021
Offline
284
#8
estic #:
Все понятно.

А при чём тут атрибут "rel"?

W1
На сайте с 22.01.2021
Offline
284
#9
Radrigo :
Подскажите, возможно ли при помощи js проверить адрес на наличие https:// до того, как браузер добавит адрес сайта?

Это решается либо на стороне сервера при сохранении данных, либо на стороне клиента при валидации полей формы.

И да, совершенно не обязательно, что адрес должен быть с https -  может быть, он с http.

P.S. Можно в случае отсутствия протокола выводить адрес не ссылкой, а простым текстом.

E
На сайте с 01.10.2017
Offline
94
#10
webinfo #:
А при чём тут атрибут "rel"?

Перепутал.


webinfo #:
Это решается либо на стороне сервера при сохранении данных, либо на стороне клиента при валидации полей формы.

На стороне сервера это нужно делать в любом случае. На стороне клиента - "по желанию".

12

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