2017-09-16 102 views
1

我想从url中获取一个变量,并将访问者301重定向到新的域,并将该变量包含在新的url中。如何从url获取变量并使用php重定向301?

例如,访问者来到我的网站http://example.com/?id=abc在该网站上我有了这种代码在其上的index.php文件:

<?php 
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.New-Website.com/?id=$_GET["id"]"); 
?> 

我要301重定向访问者到一个新的网站具有相同的变量。

此代码给我错误500

我知道这可能在.htaccess可以做,但我需要做的是在PHP。

回答

2

不能使用双引号双引号字符串中

所以修改$_GET["id"]

header("Location: http://www.New-Website.com/?id=$_GET[id]"); 

或者

header("Location: http://www.New-Website.com/?id={$_GET['id']}"); 
1

错误在第二行。双引号不会被转义。建议退出位置并使用连接。 更妙的是,如果你使用的是Apache指定数据

<?php 
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: New-Website.com/?id=".(int)$_GET["id"]); 
+0

OP为什么要这样做? **好的答案**总是会解释做了什么以及为什么这样做, 不仅适用于OP,而且适用于SO的未来访问者,可能会发现此问题并正在阅读您的答案。 – RiggsFolly

+0

Sry。 第二行错误。双引号不会被转义。建议退出位置并使用连接。更好的是,指定数据头的类型(“Location:http://www.New-Website.com/?id=".(int)$_GET["id”]); –

+0

把它放到你的答案中。 – RiggsFolly

1

的类型,只需添加一个.htaccess文件根旧域中的内容:

RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
RewriteRule ^(.*)$ http://www.New-Website.com/$1 [R=301,L] 

,所有的请求老域名将被重定向到一个新的

见例如here

0
​​
+0

这个答案没有解决问题中的实际问题(这只是一个语法错误),并且不包含代码的任何解释,这使得它没有那么有用。 – GolezTrol