Я хочу перенаправить (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.