htaccess:取决于域名的多个redirect

我有一个服务器和几个域和两个网页。 不知道如何做到以下几点:

A.com -> root\ www.A.com -> root\ B.com -> root\ www.B.com -> root\ C.com -> root\folder1\ www.C.com -> root\folder1\ 

顺便一提。 htaccess中使用的“和”逻辑运算符是什么? 我发现'或'是[OR],但[AND]似乎不起作用。 什么是语言htaccess是写在:)?

UPDATE

我在这个问题上犯了一个错误。 这是我真正想要做的。 DNS设置为域A.com指向服务器的根文件夹。 现在我想设置下面的redirect:

除C.com和D.com以外的任何域名都会redirect(301)到www.A.com。 A.com无论如何指向服务器的根文件夹,并在DNS中设置。

域www.C.com指向服务器上的文件夹'folder1'。 可以在htaccess中设置吗?

现在域名C.com,www.D.com和D.comredirect到www.C.com。

对于您的A域和B域,请使用:

 RewriteCond %{HTTP_HOST} ^(www\.)?(a|b).com$ [NC] RewriteRule ^(.*)$ /root/ [L] 

(www\.)? 允许你使用和不使用WWW(?表示“前面的块零次或一次”)。

(a|b)表示“a或b”。 您可以使用更多pipe道(a | b | d | e)添加更多域

另一个:

 RewriteCond %{HTTP_HOST} ^(www\.)?c.com$ [NC] RewriteRule ^(.*)$ /root/folder1/ [L] 

如果你想让www.A.com/hello.phpredirect到/root/hello.php,那么在RewriteRule的/ root /之后添加$1 (同时适用于这两个规则)

[AND]不存在,因为当您使用多个RewriteCond时它是隐含的。 像这样的东西:

RewriteCond%{HTTP_HOST} ^ http://www.a.com $ RewriteCond%{HTTP_HOST} ^ http://www.b.com $

已经意味着[AND]隐含,因此将永远不会工作(因为一个域名不能同时是a.com和b.com)。


更新回答你的新问题:

“除了C.com和D.com之外的任何域名都会redirect(301)到www.A.com。A.com指向服务器的根文件夹,并在DNS中设置。

 RewriteCond %{HTTP_HOST} !^(www\.)?(c|d).com$ [NC] RewriteRule ^(.*)$ http://www.a.com/$1 [L,R=301] 

“域www.C.com指向服务器上的文件夹'folder1',可以在htaccess中设置吗?

 RewriteCond %{HTTP_HOST} ^www.c.com$ [NC] RewriteCond %{REQUEST_URI} !^/folder1/ RewriteRule ^(.*)$ /folder1/$1 [L,R] 

“现在域名C.com,www.D.com和D.comredirect到www.C.com”。

 RewriteCond %{HTTP_HOST} ^c.com$ [OR] RewriteCond %{HTTP_HOST} ^(www\.)?d.com$ [NC] RewriteRule ^(.*)$ http://www.c.com/$1 [L,R=301]