2010-02-03 113 views
1

好吧,我正在關閉一個盒子的兩個域。這些域名是:301重定向匹配問題

www.old.org和www.new.com。現在,所有文件和目錄在兩個域上都是相同的。

我想讓它變成如果有人去www.old.org/folder_a/file_b.php,他們會301到www.new.com/folder_a/file_b.php。

我已經在htaccess的嘗試:

RedirectMatch 301 ^/http://www.new.com/

但是,讓一個301環,因爲301是頒佈後的301的條件仍然適用。我想我想做一些使用rewritecond%{HTTP_HOST} ^。* old.org $的東西,這樣old.org或www.old.org上的url只會受到影響,但我不知道如何做到這一點。

回答

0

如果你有機會到Apache虛擬主機的configs使用這些替代的.htaccess:

<VirtualHost *:80> 
    ServerName www.old.org 
    Redirect permanent/http://www.new.com/ 
</VirtualHost> 

如果你真的必須使用.htaccess中的下面會做什麼:

RewriteEngine On 
RewriteCond %{SERVER_NAME} =www.old.org [NC] 
RewriteRule (.*) http://www.new.com/$1 [R=301,L] 
+0

其中是Apache的vhost配置?有一個httpd.conf文件,我不能在local/apache/conf中更改,它會在哪裏? – 2010-02-03 23:31:45

+0

@pg:位置很大程度上取決於您使用的操作系統/發行版。但是,它們要麼位於httpd.conf中,要麼位於該文件內。如果您無法修改它(例如共享主機),請使用.htaccess。 – hobodave 2010-02-03 23:35:36

+0

當我使用htaccess它沒有任何效果。我可以在old.org上訪問舊頁面。我將嘗試訪問httpd.conf或找到某人。 – 2010-02-03 23:47:57

0

有些事情應該這樣做:

RewriteCond %{http_host} ^www\.old\.org$ [NC] 
RewriteRule ^/(.*) http://www.new.com/$1 [R=301] 
+0

這似乎不起作用。儘管如此,我仍會繼續努力。 – 2010-02-03 23:32:10

+0

我的意思是這沒有效果,就好像條件沒有得到滿足。 – 2010-02-03 23:32:47

+0

@Maxwell:在.htaccess的上下文中,URL路徑不會有前導/,因此^ /(。*)永遠不會匹配。另外,如果你只是捕獲整個字符串(。*),^和$是多餘的。 – hobodave 2010-02-04 00:36:17