2013-08-03 61 views
0

需要將一百個左右的鏈接從一個域重定向到另一個域。這是我當前的代碼(不工作):htaccess運動鏈接重定向

RewriteCond %{HTTP_HOST} ^www.onedomain.info/$1/staticword($2.*) [nc] 
RewriteRule (.*) http://otherdomain.com/$1/staticword($2.*) [R=301,L] 

重定向域themsleves是一個沒有腦子,這就是正確的,我認爲,那我也覺得$ 1正確 - 的Cuz $ 1是對12個不同的字變量體育類別(如足球或曲棍球),有時有一個詞,有時是另一個詞(但是它應該是相同的,所以這就是爲什麼我有這個1美元 - 如果我錯了,糾正我,但這可以工作,我認爲。 ..)。

問題是之後有一個不變的靜態詞(在每個鏈接中都一樣 - 它就像「看」一樣......)但是在那個詞之後,可以絕對是我試過的任何東西由($ 2. *)解決,但由於某種原因是錯誤的。

你能幫忙嗎?謝謝!

+0

有在你的代碼中的許多問題,但在此之前,我可以糾正他們,我會要求您提供新舊鏈接樣本。 – anubhava

+0

目前的鏈接看起來像這樣(例如足球比賽之一):'http:// onedomain.info/soccer/watchfe27789-mexico-vs-trinidad-and-tobago-gold-cup' - 「watch」永遠不會改變和「fe27789」是每個鏈接唯一的標識符,與「墨西哥vs特立尼達」相同 - 需要切換到: 'http://otherdomain.com/soccer/watchfe27789-mexico-vs-trinidad-and- tobago-gold-cup' - 它只能用於這個URL形式的鏈接(有其他類型的內部鏈接 - 例如onedomain.info/something,所以不希望它們被重定向,不能使用任何一般的「domain」域名「重定向) – Mordor

回答

0
RewriteEngine On 

# HTTP_HOST if to match domain names only 
RewriteCond %{HTTP_HOST} ^www\.onedomain\.info$ [NC] 
# On the left hand we match the rest and on the right we redirect 
RewriteRule ^(.*)/(staticword.*)/?$ http://otherdomain.com/$1/$2 [R=302,L] 

請注意,我用的302,因爲你想將其更改爲301,您的瀏覽器沒有得到它之前緩存首先測試它,直到你確信它的工作,你想要它。

所以給你的榜樣http://onedomain.info/soccer/watchfe27789-mexico-vs-trinidad-and-tobago-gold-cu‌​p,規則是這樣的:

RewriteEngine On 

# HTTP_HOST if to match domain names only 
RewriteCond %{HTTP_HOST} ^www\.onedomain\.info$ [NC] 
# On the left hand we match the rest and on the right we redirect 
RewriteRule ^(.*)/(watchfe27789.*)/?$ http://otherdomain.com/$1/$2 [R=302,L] 
+0

工程就像一個魅力,謝謝你! (只注意'fe27789'不應該在那裏,因爲它每次都是不同的 - 它是唯一的ID,每個不同的鏈接都在改變,但是當我只將這個部分減少到'(watch。*)'時,全部都是工作完美,很棒的工作......!) – Mordor

+0

@Moror很高興它適合你,沒關係,我只是用它作爲你看到如何應用它的一個例子。 – Prix