2013-07-29 45 views
1

嘗試此查詢重定向到一個新的領域:htaccess的301重定向查詢到的新域名

www.domain.com/search.php?q=keyword 

www.newdomain.com/search.php?q=keyword 

關鍵字可以是任何文字

,並希望保持休息在域中,我只需要重定向這個查詢。 我嘗試幾種方法,我發現更接近解決方案之一是這一個:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^q=1$ 
RewriteRule ^search\.php$ http://www.newdomain.com/search.php?q=$1 [R=301,L] 

但不工作! 希望有人能幫我糾正這一點,如果這是做這份工作的最佳方式? 非常感謝。

回答

1

你是八九不離十。

啓用mod_rewrite的,並通過httpd.conf的.htaccess,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^(www.)?domain\.com$ [NC] 
RewriteCond %{QUERY_STRING} ^q=.+ [NC] 
RewriteRule ^(search\.php)$ http://www.newdomain.com/$1 [R=301,L,NC] 
+0

太棒了!很好地工作,謝謝anubhava! –

+0

使用這個新的更新而不是其他答案的優勢嗎? –

+0

不要以爲其他答案會正常工作,因爲它有'?'在最後將刪除原來的查詢字符串。 – anubhava

1

試試這個

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^id=123$ 
RewriteRule ^/?product\.php$ http://website.com.au/product_123.php? [L,R=301] 

或者

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^id=([^&]+) 
RewriteRule ^/?product\.php$ http://website.com.au/product_%1.php? [L,R=301] 
0

這個作品,是簡單

RewriteEngine on 
RewriteRule ^(.*)$ http://newdomain.com/$1 [QSA]