0

我想重定向(302)我的mydomain.com/page.php游客到另一个URL, 包含动态值,如访问者的IP地址:创建302重定向到动态更改的URL并传递引用信息?

http://external.com/?ip=100.0.0.1

我的常识说,这不能与.htaccess来完成,因为它的内容是静态的, 因此线将永远是这样的:

redirect 302 /redir-number-1 http://external.com/[not-useful-static-value]

目前我” m个第一用户提供这种重定向代码转移到另一个PHP页面(mydomain.com/transfer.php):

$ip = $_SERVER['REMOTE_ADDR'] ; 

$url = "http://external.com/?$ip; 

header("refresh:1;url=$url"); 

但是,这似乎并没有包含一个302重定向,作为状态代码我得到的是200, 它也是当访问者到达external.com时,我通过原始引用URL信息(mydomain.com/page.php)很重要,但是使用我目前的方法,他以mydomain.com/transfer.php作为引用者到达。

回答

0

试试这个为302:

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

但你永远不会得到一个重定向正确引用。您需要将其作为变量添加到网址中。

+0

谢谢,这似乎是实际工作,虽然是有办法有这个页面进行重定向只有1秒暂停后,类似我以前的代码?我确实使用你的方法得到了正确的原始引用者来显示。如果有人能提供关于它现在如何工作的原因,我会很高兴。 – rockyraw 2014-11-23 20:42:56

+0

当然,只要在当前标题的末尾加上',true,302' – rjdown 2014-11-23 20:48:57

+0

如果我这样做了,原始引用链接将不会被传递。它会是'mydomain.com/transfer.php'。任何其他想法来实现这一目标? – rockyraw 2014-11-23 21:09:51

1

你可以做到这一点与您的根目录.htaccess

RewriteEngine on 
RewriteRule ^page\.php$ http://external.com/?ip=%{REMOTE_ADDR} [R=302,L] 
+1

是的,这是正确的方法+1 – anubhava 2014-11-24 02:16:20

+0

谢谢,我知道我没有写在我的问题,但知识产权只是我想要的字符串之一,我也想要字符串检查是否或案例条件,这也将在网址中发挥作用,在这种情况下,我想用'.htaccess'没有办法做到这一点? – rockyraw 2014-11-24 11:05:44

+0

是的,你是对的:用.htaccess没有办法做到这一点...如果你没有准确解释你想要的东西 – Croises 2014-11-24 12:20:35