2012-02-21 96 views
1

我就基本上代替,當有人在我的網站上的東西搜索一個新的腳本工作如何通常去到這裏:通過子域通配符重定向傳遞變量?

http://domain.com/index.php?q=apples

http://apples.domain.com

我有此在PHP和htaccess中完美工作,但我遇到的問題是之後在新的子域名頁面上使用原始關鍵字。

現在,我可以用parse_url獲得關鍵字出來的url,但我的劇本也過濾掉類似的潛在問題:

public function sanitise($v, $separator = '-') 
    { 
     return trim(
      preg_replace('#[^\w\-]+#', $separator, $v), 
      $separator 
     ); 
    } 

所以,如果有人對上網本V1.2搜索

新子域是:

http://netbook-v1-2.domain.com

現在我可以把關鍵字出來,但它與破折號,而不是原來的。我正在尋找一種方式來發送301重定向的原始關鍵字。

謝謝!

+0

有你嘗試過使用會話? – jeroen 2012-02-21 21:42:43

回答

1

您可以只或空格替換連字符,當他們訪問新的子域,因爲你是在同一個頂級域名,你可以使用網站重定向他們當關鍵字:

setcookie('clientkeyword', 'netbook-v1-2.domain.com:netbook v1.2', 0, '/', '.domain.com'); 
+0

當人們自己搜索物品時非常有用,但如果用戶從google或其他地方點擊apples.domain.com,則無法顯示。 :( – deadlyeffect 2012-02-21 22:04:32

+0

這就是爲什麼我也說'只是用'_SERVER ['HTTP_HOST']'替換帶空格的連字符',在這種情況下你什麼也做不了 – webbiedave 2012-02-21 22:08:23

+0

想到這個,你是絕對正確的。沒有別的我可以做的,所以這應該是夠好的,謝謝! – deadlyeffect 2012-02-21 22:11:48

0

看看這個答案:https://stackoverflow.com/a/358334/992437

,看看你是否可以使用POST或GET是已經存在的數據。如果是這樣,那可能是你最好的選擇。

+0

當客戶端被重定向時,這不起作用。 – webbiedave 2012-02-21 21:43:15

+0

.htaccess中的特定標誌告訴POST數據和GET數據也被重定向。我錯過了什麼嗎? – Tim 2012-02-21 21:45:07

+0

你很容易混淆重寫和重定向。客戶不會重新發布其數據。 – webbiedave 2012-02-21 21:47:30