2012-07-13 77 views
0

我需要重定向從visiters:重定向PHP查詢

/plug/survey/survey.php?22 

/publications.php?1.articles.view.547 

我的.htaccess和PHP的瞭解有限,不知道如果任何人有任何提示/想法給我嗎? 任何幫助將非常感激!

謝謝

+2

你使用的是Apache嗎?閱讀關於[mod_rewrite](http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html)?你有什麼嘗試? – ghoti 2012-07-13 11:50:05

+3

然後你應該閱讀;)並學習。 – Stony 2012-07-13 11:50:11

+0

.htaccess將無法工作,因爲兩個鏈接都沒有任何共同之處,所以您必須使用PHP或其他服務器端語言來完成此操作。 – 2012-07-13 11:51:04

回答

1

添加到survey.php的頂部:

<?php 

if ($_SERVER['QUERY_STRING'] == "22") { 
    header("Location: http://example.com/publications.php?1.articles.view.547"); 
    exit; 
} 
+0

輝煌 - 非常感謝你! – kadeshiseraph 2012-07-13 13:45:44

1

你可以寫在htaccess的文件驗證碼

RewriteEngine on 
Redirect /plug/survey/survey.php?22 /publications.php?1.articles.view.547 

也閱讀了本

http://corz.org/serv/tricks/htaccess2.php

+1

要重定向用戶,您應該使用(add )'R'國旗 – undone 2012-07-13 11:56:38

+0

非常感謝,但是把它放在.htaccess中給我一個500的內部服務器錯誤。有什麼我可能做錯了嗎? – kadeshiseraph 2012-07-13 13:42:50

+0

我可以看到你的htaccess代碼嗎? – Hkachhia 2012-07-14 05:14:57

0

你的問題確實缺乏重要的信息n:

「1.articles」來自哪裏 - 它是一個固定的字符串? 哪裏死了,「547」來自哪裏,我猜它是從某個數據庫查找中得到的?

如果是這樣,那麼使用簡單重寫規則就沒有簡單的方法。 最有可能的最佳解決方案是編寫一個您重定向到的小php腳本。在該腳本中,您可以評估請求參數(php變量$ _SERVER等),使數據庫查找並使用收集到的信息向瀏覽器發送重定向頭(使用phps的header()方法)。

0

我認爲您的解決方案是

header("location:/publications.php?1.articles.view.547"); 

您可以使用.httaccess,但如果你想用戶應該去那個頁面上,你不能使用它,因爲它會讀取頁面上的任何代碼之前您重定向,但header()將首先閱讀代碼,如果有任何代碼是不好的,然後像這樣重定向,

if($varisgood){ 
    // not redirect 
} 
else{ 
    //redirect 
}