2011-06-13 145 views
0

我最近在另一個域上創建了一個新站點。我需要將舊域的index.html重定向到新域的索引。將一個特定頁面重定向到另一個域

通常這不會成爲問題,但舊域名是服務器的根域,新域名是附加域名。因此,以下行會導致重定向循環,因爲它會將a.com/index.htmlb.com/index.html重定向到b.com/index.html

Redirect 301 /index.html http://b.com/ 

有沒有辦法做這樣的事情?

Redirect 301 http://a.com/index.html http://b.com/ 

TL; DR我怎麼能在一個領域到另一個領域重定向index.html沒有它級聯並導致循環,因爲其它域是在同一文件夾爲此在法律上添加域(即相同的.htaccess)。

回答

1

你可以嘗試mod_rewrite的更多的靈活性,像這樣的代碼:

Options +FollowSymlinks -MultiViews 
RewriteEngine on 

# for HTTP 
RewriteCond %{HTTP_HOST} ^a\.com$ [NC] 
RewriteCond %{SERVER_PORT} =80 
RewriteRule ^(index\.html)$ http://b.com/$1 [R=301,L,NC] 

# for HTTPS 
RewriteCond %{HTTP_HOST} ^a\.com$ [NC] 
RewriteCond %{SERVER_PORT} =443 
RewriteRule ^(index\.html)$ https://b.com/$1 [R=301,L,NC] 
+0

看起來很有前途,儘管我在添加符號鏈接時遇到了服務器錯誤。任何想法,爲什麼這可能是?感謝您一直以來的幫助。 – Olical 2011-06-13 22:08:45

+0

你能解釋一下你創建什麼類型的符號鏈接嗎?這是我們在* nix系統上的符號鏈接嗎?當你在瀏覽器中看到服務器錯誤時,你也可以從error.log報告相關的錯誤。 – anubhava 2011-06-13 22:22:33

+0

我的意思是在你的例子中的選項行。當包含跟隨符號鏈接選項時,我的服務器就會死亡,沒有有用的錯誤信息。沒有它,沒有任何反應。 – Olical 2011-06-13 22:35:28

0

JavaScript重定向:在您的網頁上只是<head>標籤後,舊的網站上

粘貼此。

<script type="text/javascript"> 
window.location = "http://www.newsite.com/" 
</script> 

當然,您可以將「http://www.newsite.com/」替換爲您希望頁面重定向到的任何位置。

它應該立即重定向您。因此,任何人訪問舊網站頁面將立即重定向到newsite.com

PHP重定向(301永久移動):

<? 
Header("HTTP/1.1 301 Moved Permanently"); 
Header("Location: http://www.newsite.com/"); 
?> 

地方,在你的頁面的頂部。它不如JavaScript的那麼好,但它是SEO FRIENDLY,我認爲你在尋找。

+0

是的,我相信這會工作,但我需要的是一個301重定向。 – Olical 2011-06-13 22:09:43

+0

我已更新我的答案,通過使用php設置標題包含搜索引擎友好的重定向方法。 – alt 2011-06-14 05:06:13

+0

記住它是一個答案? – alt 2011-06-20 02:44:00

相關問題