2017-09-16 148 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