Создание 302 перенаправления на URL, который изменяется динамически, и передача справочной информации?

0

Я хочу перенаправить (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
redirect
http-status-code-301
http-status-code-302

2 ответа

1

Вы можете сделать это с помощью .htaccess в корневом каталоге:

RewriteEngine on 
RewriteRule ^page\.php$ http://external.com/?ip=%{REMOTE_ADDR} [R=302,L]
  • 1
    Да, это правильный способ сделать это +1
  • 0
    Спасибо, я знаю, что не написал это в своем вопросе, но вопрос IP - это только одна из строк, которые я хотел бы иметь, я также хотел бы строки, которые проверяют условия или условия, которые также вступают в игру в URL-адрес, в таком случае, я думаю, что нет никакого способа сделать это с .htaccess ?
Показать ещё 1 комментарий
0

Попробуйте это для 302:

header("Location: $url", true, 302);

Но вы никогда не получите правильный реферер при перенаправлении. Вы должны добавить его как переменную в URL, возможно.

  • 0
    Спасибо, похоже, на самом деле это работает, хотя есть ли способ, чтобы эта страница перенаправляла только после 1-секундной паузы, как в моем предыдущем коде? Я получаю правильный исходный реферер для показа сейчас, используя ваш метод. Я был бы рад, если бы кто-то мог объяснить, как и почему он работает сейчас.
  • 0
    Конечно, просто поставьте , true, 302 в конце вашего текущего заголовка
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню