Нормальный редирект

torsar

Редиректю с помощью header.

В бд много url введенных пользователями.
просто: ukr.net
и https://sql.ru

И надо, чтоб всегда перекидывалось на внешний сайт.

А header, если нету в начале url http:// или http:// пытается редиректить
на внутреннюю страницу сайта.

Проверять, есть ли в урле протокол геморно.
И добавлять протокол. если его нету в урле тоже.

Как быть? Может есть умный способ?

 

Drunkenmunky

https://www.php.net/manual/ru/function.str-replace.php

PHP:
  1. $url = str_replace(array(‘http://’, ‘https://’), », $url);
  2. echo ‘http://’.$url;
 

Sail

@torsar, есть ещё функция PHP: parse_url — Manual. Достаточно проверить наличие элемента «scheme» и в случае его отсутствия — добавить или попросить пользователя указать полный URL.
Желательно это делать перед добавлением в базу, раз уж «надо, чтоб всегда».
И для существующих уже записей прогнать скрипт проверки.

 

artoodetoo

Умный способ — проверять и добавлять. А геморно это когда сэкономил 1-2 строки и неделю разгребаешь последствия.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *