Применение перенаправления 302

Как было сказано в главе 4, перенаправление 302 не переносит ссылочной ценности, и, следовательно, практически бесполезно для спамеров. Но для фишеров оно может представлять интерес, как было отмечено выше.
Исключение сценария redirect.php с помощью файла robots. txt
Эту технику можно использовать в сочетании с перенаправлением 302. Однако она
также не гарантирует защиту от фишинга. Если вы пропустили главу 5, прочтите ее
сейчас, поскольку в ней описан файл robots. txt.
User-agent: *
Disallow: /redirect.php
Решение с базой данных
URL-адрес можно хранить — в самом сценарии или в базе данных — а не вставлять его в URL явным образом:
<?php
// определение таблицы выбора URL
$lookup_table = array (
0=>'http://www.example.com/0',
1=>'http://www.example.com/1',
2=>'http://www.example.com/2');
// выполнение перенаправления
header('HTTP/1.1 302 Found');
header('Location:' . $lookup_table[$_GET['url_id']]);
?>
В этом случае адреса будут выглядеть наподобие http://www.example.com/
redirect.php?redirect_id= [число], что устраняет проблемы.
Данное решение позволяет использовать перенаправления 301, что предпочтительнее, т.к. они считаются голосами "за". (Однако не применяйте перенаправления 301, если URL можно легко модифицировать.)
Если у вас уже есть Web-сайт, на котором выполняются перенаправления на URLадрес, указанный в виде параметра в строке запроса, то прежде чем выполнить перенаправление, можно просто проверить, что это известный URL:
<?php
// определение таблицы выбора URL
$lookup_table = array (
0=>'http://www.example.com/0',
1=>'http://www.example.com/1',
2=>'http://www.example.com/2');
// выборка целевого URL
if (isset($_GET['url']))
<
$url = $ GET ['url'] ;
}
// выполнение перенаправления только если целевой ORL известен
if (isset($url) && in_axray($url, $lookup_table))
{
header('HTTP/1.1 302 Found');
header('Location: ' . $url);
)
?>