Я хочу перенаправить (302) моих посетителей mydomain.com/page.php
на другой URL-адрес, содержащий динамическое значение, например IP-адрес посетителя:
http://external.com/?ip=100.0.0.1
мой здравый смысл говорит, что это невозможно сделать с .htaccess
, поскольку его содержимое является статичным, и поэтому строка всегда будет выглядеть примерно так:
redirect 302/redir-number-1 http://external.com/[not-useful-static-value]
В настоящее время я сначала передаю пользователя на другую страницу PHP (mydomain.com/transfer.php
) с этим кодом перенаправления:
$ip = $_SERVER['REMOTE_ADDR'] ;
$url = "http://external.com/?$ip;
header( "refresh:1;url=$url" );
Но это не похоже на перенаправление 302, так как код состояния, который я получаю, равен 200, и мне также важно передать исходную информацию URL-адреса (mydomain.com/page.php
), когда посетитель прибудет на external.com
, но с моим текущим методом он приходит с mydomain.com/transfer.php
в качестве реферера.
Вы можете сделать это с помощью .htaccess
в корневом каталоге:
RewriteEngine on
RewriteRule ^page\.php$ http://external.com/?ip=%{REMOTE_ADDR} [R=302,L]
Попробуйте это для 302:
header("Location: $url", true, 302);
Но вы никогда не получите правильный реферер при перенаправлении. Вы должны добавить его как переменную в URL, возможно.
, true, 302
в конце вашего текущего заголовка
.htaccess
?