MiraKR

Рейтинг
25
Регистрация
25.06.2018
miketomlin:
Статус страницы проверьте, а не содержимое. Хотя конечно лучше, чтобы и содержимое было, как у обычной 404-ой.

Страница не похожа на стандартную с 404 ошибкой. Но код ответа сервера 404.

LEOnidUKG:
mmkulikov, если переход не с главной скрипт не сработает да? :)


Тс, попробуйте так:

<?php
$truehost='http://'.$_SERVER['SERVER_NAME'];
$referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';

if (preg_match('@^'.$truehost.'@smi',$referrer)) {
$url = $_GET["url"];
header("Location: $url");
} else {
header("HTTP/1.1 404 Not Found");
}

Большое спасибо! С этим кодом работает редирект на страницы, ссылки на которые ведут с моего сайта. А для левых страниц редирект не срабатывает, показывается просто пустая страница (не с 404 ошибкой). Я так понимаю, так и должно быть.

mmkulikov:
Это и есть весь код для этого файла

Спасибо за ответ! Этот код, вообще не делает перенаправления. Открывается пустая страница для тех страниц, на которые я делаю перенаправление и для перенаправления на порно-сайт.

mmkulikov:
MiraKR,

<?php
$referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$valid_referrer = [ 'http://пр.ru' // Здесь впишите свой сайт, а не пр.ru
];
if (in_array($referrer, $valid_referrer)) {
$url = $_GET["url"];
header("Location: $url");
} else {
header("HTTP/1.1 404 Not Found");
}

В коде я указываю название сайта. Просто тут изменила на форуме. Этот код нужно внедрить в файл go.php вместо строк? $url = $_GET["url"];

header("Location: $url");

Shessmaster:
Вредные ссылки - это звучит устрашающе. Не иначе в какой-нибудь умной книжке про них прочитали.
А может они ни на что и не влияют, не вносят никакого вреда в поисковое ранжирование вашего сайта.

Эти страницы почему-то считаются донорами. Но донор порно-сайт это плохо. Как и прыгающий тиц.

---------- Добавлено 09.07.2018 в 16:40 ----------

mmkulikov:
Покажите весь код какой получился

<?php
$referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$valid_referrer = [ 'http://пр.ru'
];
if (in_array($referrer, $valid_referrer)) {
//
} else {
header("HTTP/1.1 404 Not Found");
}
$url = $_GET["url"];
header("Location: $url");

Код внедрила, он рабочий. Но на редирект с другого сайта типа: «мой сайт/go.php?url=страница порносайта» это никак не повлияло. Редирект есть и он перенаправляет на страницы порно-сайта.

Zaandr:
Ну самое простое это так
<?php

$referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$valid_referrer = [ 'http://url.com',
'http://url-2.com'
];
if (in_array($referrer, $valid_referrer)) {
// здесь редирект который был
} else {
header("HTTP/1.1 404 Not Found");
}

Спасибо! Поясните, пожалуйста, мне нужно добавить этот код к тому, что есть? К этому?

<?php

$url = $_GET["url"];

header("Location: $url");

?>

Зачем эта строка? 'http://url-2.com'

В конце кода нужно поставить ?>?

LEOnidUKG:
Минимум сделайте проверку рефера, если она с вашего сайта, делать редирект, если нет то 404 страницу выдавать.

Спасибо! Как это сделать?

---------- Добавлено 09.07.2018 в 15:21 ----------

burunduk:
MiraKR, это называется открытые редиректы
сервер должен по таким ссылкам отдавать 404 код ответа

Спасибо! Уже нашла, что это открытый редирект. Но в выдаче не нашла решение своей проблемы.

Нашла код:

<?php

$_GET[‘url’] = preg_replace(«/(\.\.\/)/»,»»,$_GET[‘url’]);

$_GET[‘url’] = preg_replace(«/(\\x)/»,»»,$_GET[‘url’]);

$_GET[‘url’] = preg_replace(«/\\\$/»,’***036;’,$_GET[‘url’]);

$_GET[‘url’] = preg_replace(«/\\\/»,’***092;’,$_GET[‘url’]);

$_GET[‘url’] = str_replace(«|»,»***124;»,$_GET[‘url’]);

$url = $_GET[‘url’];

header(«Location: $url»);

?>

Якобы он устраняет дыры и делает нормально редирект. Но он не срабатывает.

LEOnidUKG:
Сделать так, чтобы этот go не обрабатывал всякие сторонние ссылки, также запретить на индексацию его. Чего у вас редирект в индексе то?

Спасибо за ответ! Как это сделать?

Использовала для преобразования внешних ссылок во внутренние файл с кодом:

<?php

$url = $_GET["url"];

header("Location: $url");

?>

В robotx.txt есть запрет Disallow: /go.php

LEOnidUKG:
Ничего не нужно делать в основном, у вас скорее всего Cpanel, это такая структура там.

Вы правы, на хостинге Cpanel.

---------- Добавлено 08.07.2018 в 10:18 ----------

Апокалипсис:
Я наверное не совсем вас понял. Я про аддоны для сео.
Единственные поддомены сейчас которые помогают - региональные.

речь про тех часть ?

Я не хочу раскручивать основной домен за счет поддоменов, а просто задумалась, что может тормозить развитие сайта, который на хостинге размещается в качестве аддона. У меня аддоны не для сео. Это такой тарифный план на хостинге - бесконечное количество доменов второго уровня. Но они все, начиная со второго являются аддонами.

Всего: 79