301重定向匹配问题

时间:2010-02-03 23:13:48

标签: .htaccess rewrite conditional-statements

好的我正在为一个盒子提供两个域名。域名是:

www.old.org和www.new.com。就像现在一样,两个域上的所有文件和目录都是相同的。

我想这样做,如果有人去了www.old.org/folder_a/file_b.php,他们就是301'ed到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会受到影响,但我不知道怎么做。

2 个答案:

答案 0 :(得分:0)

如果您有权访问apache vhost配置,请使用那些而不是.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]

答案 1 :(得分:0)

这样的事情应该做:

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