Редирект внешних ссылок через 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

Новости от партнеров

Комментарии

  1. @devarts пишет:
    19.03.2019 в 22:53

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

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

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

  2. @Sergio пишет:
    19.03.2019 в 11:54

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

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

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