2012-07-23 16 views
-2

我需要將用戶從頁面資源/?group = 168重定向到resources /?group = 205。重定向從MySQL填充的PHP查詢

是在htaccess,php重定向,或可能在index.php切換案件的最佳方式?

我沒有成功嘗試:

htaccess的

Redirect resources/?group=168 http://www.site.com/resources/?group=205 

案例切換

switch ($id) { case '168': $id = 205; break;} 

感謝您的任何建議。

+1

你爲什麼要重定向?這是唯一一個,會不會有更多的重定向? – mdo 2012-07-23 17:46:00

+1

這與MySQL查詢有什麼關係? – Ray 2012-07-23 17:46:28

+0

我將我們用來存儲簡訊的頁面重定向到新位置。這是目前唯一的重定向。也許我說錯了,但頁面都存儲在數據庫與PHP文件,它將每個頁面按數字拉到index.php。 – Jameson 2012-07-23 19:07:12

回答

0

,我會做它在htacces或Apache配置中,你可以發送一個合適的3XX系列響應頭讓瀏覽器(和搜索引擎蜘蛛)知道這是該資源的新位置。

RewriteEngine On 
RewriteRule ^resources/\?group=168$ /resources/?group=205 [R=301,L] 

如果你確切的URI不會是/資源/組= 168,那麼你可能需要做像利特不同的模式:

RewriteRule ^resources/(\?|.*&)group=168(&.*$|$) /resources/$1group=205$2 [R=301,L] 
+0

謝謝,我一直在試圖讓這些工作在我們的設置中,並沒有任何運氣。理想情況下,我想使用.htaccess,但我沒有得到任何結果與重寫。我已經將它添加到根文件夾中的.htaccess中,並且我猜測$符號適用於可能在168之後發生的任何事情。它根本沒有反應。 – Jameson 2012-07-23 20:38:56

+0

$符號表示字符串的結尾。這隻會匹配/ resources /?group = 168的文字URI。如果將要傳遞其他參數,那麼你會想做一些不同的事情。看到我上面的編輯。 – 2012-07-23 20:40:48

+0

我試着添加特定的重定向和你的代碼到根目錄,html和資源文件夾,它似乎沒有在它們中任何一個上有所作爲。應該放置什麼文件夾來幫助完成我的一些猜測工作?謝謝! – Jameson 2012-07-23 22:53:29

0
if ($_GET['id'] == 168) { 
    header('Location: http://www.site.com/resources/?group=205'); 
} 

如果頭重定向不起作用,使用JavaScript

<script type="text/javascript"> 
<!-- 
window.location = "http://www.site.com/resources/?group=205" 
//--> 
</script> 
0

我只想用一個if聲明自己:

if ($id == '168') $id = 205; 

但它確實取決於你的需求,我假設。如果你想讓URL欄反映重定向,我會建議.htaccess。

+0

感謝您的幫助,這將工作,但我意識到我需要使用以前的鏈接到頁面的任何人的htaccess。 – Jameson 2012-07-23 22:55:06

0

林不知道如果你希望用戶永久使用這組ID與另一個的switch是假設在你的例子做的(本身),但如何

switch($_GET['group']) { 
    case 168: $redirGrp = 205;break; 
} 
if(!empty($redirGrp)) header("Location:?group=$redirGrp");