Apache重写和重写3个域

时间:2012-02-07 15:02:21

标签: apache .htaccess mod-rewrite cpanel

我有三个域名(domain1.es,domain2.com,domain3.com)。

我需要:

  • domain1.es或www.domain1.es,显示www.domain1.es/catalog

  • 的内容
  • domain2.com或www.domain2.com,重定向到www.domain1.es并显示www.domain1.es/catalog

  • 的内容
  • domain3.com或www.domain3.com,显示www.domain3.com的内容

我正在使用cpanel,我将domain3.com作为aditional域,配置为使用/public_html/domain3.com文件夹作为Web根文件夹。

我已尝试使用htaccess:

RewriteEngine on
RewriteCond %{THE_REQUEST} ^GET\ /catalog/
RewriteRule ^catalog/(.*) /$1 [L,R=301]
RewriteRule !^catalog/ catalog%{REQUEST_URI} [L]
RewriteCond %{HTTP_HOST} ^domain2\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain2\.com$
RewriteRule ^/?$ "domain1\.es" [R=301,L]

所有域都在同一主机中,根文件夹/ p​​ublic_html。然后

  • www.domain1.es显示/public_html/catalog
  • 的内容
  • domain1.es显示/public_html/catalog
  • 的内容
  • www.domain2.com显示/public_html/catalog
  • 的内容
  • domain2.com显示/public_html/catalog
  • 的内容

我正在编写domain3规则,但我不确定。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用此代码:

Options +FollowSymLinks -MultiViews
RewriteEngine on

# domain2.es => domain1.es/catalog
RewriteCond %{HTTP_HOST} ^(www\.)?domain2\.es$ [NC]
RewriteRule ^ http://www.domain1.es/catalog%{REQUEST_URI} [L,R=301]

# domain1.es/foo => domain1.es/catalog/foo
RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.es$ [NC]
RewriteRule ^((?!catalog/).*)$ catalog/$1 [L,NC]

# domain3.es => www.domain3.es
RewriteCond %{HTTP_HOST} ^domain3\.es$ [NC]
RewriteRule ^ http://www.domain3.es/%{REQUEST_URI} [L,R=301]