Редирект внешних ссылок через PHP $_GET, HTTP ссылки на HTTPS страницах без потери зеленого замка

php get redirect - Редирект внешних ссылок через PHP $_GET, HTTP ссылки на HTTPS страницах без потери зеленого замка

Автоматизация поиска всех ссылок на javascript здесь

Для SEO очень важно контролировать внешние ссылки на вашем сайте. В данной статье будем это делать при помощи редиректа на языке PHP, методом $_GET, а также без потери зеленого замка использовать HTTP адреса на страницах с HTTPS SSL.

Ко всем ссылкам мы будем добавлять небольшой префикс в качестве $_GET параметра благодаря чему внешняя ссылка становится частью сайта. Такие страницы индексируются но не несут никакого веса. Для работы необходимо наличие php.

<a href="/r.php?r=https://someurl.website">Внешняя ссылка, как часть сайта</a>

Тем, кто перейдет по ссылке можно представить два варианта: мгновенный редирект на искомый сайт или страница с предупреждением.

php get redirect page buffer - Редирект внешних ссылок через PHP $_GET, HTTP ссылки на HTTPS страницах без потери зеленого замка
Страница-заглушка для редиректа

Создаем файл

Создаем файл в формате PHP, название которого будет частью ссылки, например — r.php (одной буквы хватит, в будущем меньше текста придется набирать).

Редирект без страницы-заглушки

В созданный файл r.php добавляем следующий код, который сразу же будет перенравлять на искомый сайт.

<?php

if($_GET['r'] && substr($_GET['r'], 0, 4) == 'http') 
	Header("Location:" . $_GET['r'] );
else 
	Header("Location: / ");

Ссылка должна передавать непустое значение $_GET[‘r’] и должна содержать в первых четырех символах протокол HTTP, и иметь следующий вид.

/r.php?r=https://someurl.website

Редирект с заглушкой

<?php

if($_GET['r'] && substr($_GET['r'], 0, 4) == 'http'){ ?>

	<html>
	  <head>
	    <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
		<title> Переход по внешней ссылке на <?= $_GET['r'] ?></title>
	  </head>
	  <body>

		<h1>Вы переходите по ссылке </h1>
		<h2><?= $_GET['r'] ?></h2>
		
		<br/><br/>
		
		<strong>Подождите пожалуйста 5 секунд или нажмите <a href="<?= $_GET['r'] ?>">сюда</a></strong>

		<script> 
			setTimeout('location.href="<?= $_GET['r'] ?>"',5000);
		</script>
	  </body>
	</html>
<?php } else Header("Location: / ");
php get redirect page buffer 2 - Редирект внешних ссылок через PHP $_GET, HTTP ссылки на HTTPS страницах без потери зеленого замка
Простая страница-заглушка

Ссылку передаем с аналогичными параметрами. 
/r.php?r=https://someurl.website

Дополнительно сделал небольшую проверку на корректность передаваемого урл скрипту. Проверяет наличие HTTP в первых четырех буквах адреса, иначе перенаправляет на главную страницу.

Пример

/r.php?r=https://someurl.website

Похожие записи


SEO и внешние ссылки: три способа скрыть ссылки на другие сайты
Внешняя ссылка для SEO является нежелательны элементом на любой странице сайта. Она передает часть веса вашего сайта на тот ресурс,...
PHP — простой ротатор баннеров, ротатор для DLE и WordPress
Аналог на javascriptАналог на PHP для больших кодов Очень простой ротатор кода на PHP. Сначала мы объявляем простой двумерный массив...
Как и где лучше всего изучать программирование на языке PHP
PHP — это серверный язык программирования со своими плюсами и минусами. Его давно хоронят, но он прочно закрепился в своей...
Где найти полезные материалы для изучения языков программирования?
В современном мире практически каждый человек может ощутить на себе серьезное влияние технологий. Технические средства начинают внедряться практически во все...
Laravel — стоит ли связываться с PHP фреймворком в 2020?
Laravel — масштабный PHP фреймворк, который отлично подойдет для повышения навыков разработки на данном языке и будет хорошей альтернативой не...

3 комментария на «“Редирект внешних ссылок через PHP $_GET, HTTP ссылки на HTTPS страницах без потери зеленого замка”»

  1. У меня редирект работал на протоколе http, но после перехода на https редирект перестал работать. Пробовал ваш скрипт с https, но он тоже не хочет работать

  2. Цитата: Sergio
    У меня редирект работал на протоколе http, но после перехода на https редирект перестал работать. Пробовал ваш скрипт с https, но он тоже не хочет работать

    Пример можно?
    Для Header Location не важно, какой протокол использовать. Возможно на уровне провайдера заблочено или ошибка в коде

    Пример:
    https://devarts.pro/r.
    php?r=https://someurl.website

  3. Thanks for finally talking about > Редирект внешних ссылок
    через PHP $_GET, HTTP ссылки на HTTPS страницах без потери
    зеленого замка < Loved it!

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