2013-01-23 44 views
1

我打算很快重新啓動一個網站。重新啓動的一部分是Joomla的切換!到Wordpress。301重定向條QUERY_STRING

除了一些舊的頁面,這些頁面將以一些精確的表達式重定向,我有很多頁面,這些頁面將被重定向到新的根頁面。

請告訴我正確的正則表達式,如果我想重定向的URL像這樣:

http://www.somedomain.com/index.php?somevar=123&com_option=somevalue 
http://www.somedomain.com/index.php?com_option=someothervalue 

所有網址都具有一個共同點:

http://www.somedomain.com/index.php? 
+ 
com_option 

我如何可以重定向所有這些網頁有一個線重定向代碼在.htaccess中的?

+0

看一看:HTTP:// serverfault .com/questions/279996/how-do-you-redirect-urls-with-a-query-string-to-another-host –

回答

0

攜帶現在,該網站是活的了,我看到我的問題的答案都沒有解決。

一些嘗試錯誤後,我找到了一個解決方案:

現在谷歌提供的實時演示:


1)進入谷歌&搜索「網站:sqlxpert.de」。

2)單擊URL中具有「選項」的鏈接。

3)你將被重定向到新的頁面 - 在這種情況下是相同的域和index.php,但d *** QUERY_STRING消失了。


我需要一個htaccess的片斷,其執行以下操作(用文字表達):

If requested file is 
    INDEX.PHP or INDEX2.PHP 
AND 
    QUERY STRING contains "option" 
then 301 REDIRECT to 
    http://www.sqlxpert.de/ 
WITHOUT any QUERY STRING 

解決辦法:

RewriteCond %{QUERY_STRING} option 
RewriteRule ^index\.php http://www.sqlxpert.de/$1? [L,R=301] 
RewriteRule ^index2\.php http://www.sqlxpert.de/$1? [L,R=301] 
0

你需要做這樣的事情:

RedirectMatch 301 (.*)/the/old/domain/and/url/(.*) http://the/new/domain/and/path/$2 
1

我假設你不需要somevar,只希望在com_option

RewriteEngine on 
RewriteBase/
RewriteRule index.php(.*)com_option=(.*)$ http://newsite.com/index.php?com_option=$2 [L,R=301] 
+0

我不需要繼續任何事情,但需要標識URL,它們具有被「index.php」+「com_option」或至少被「co m_option「 –

+0

所以,我就這樣弄清楚了。您不需要將com_option的值推送到新的URL;你只想要一個網址中的com_option重定向到你的新主頁?如果是這種情況,只需從我的條目中刪除?com_option = $ 2。如果您確實需要com_option的值,請注意我的條目(如現在)將忽略除com_option之外的所有內容。這將被添加到您的新網址 - 指定爲http://newsite.com/index.php。 – roypd

+0

Humpf現在上線了,但這不是解決方案。轉到Google搜索「site:sqlxpert.de」,然後在URL中使用「index.php?com_option」結果之一。 您將訪問新網站,但QUERY_STRING的所有廢話都不會刪除:-( –