2012-02-07 44 views
3

我有三個域(domain1.es,domain2.com,domain3.com)。Apache重寫和3個域的rewritecond

我需要的是:

  • domain1.es OR www.domain1.es,顯示www.domain1.es/catalog的內容

  • domain2.com OR www.domain2.com ,重定向到www.domain1.es並顯示www.domain1.es/catalog的內容

  • domain3.com OR www.domain3.com,顯示www.domain3.com

0123內容

我正在使用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] 

所有的域在同一主機,與根文件夾/的public_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

使用此代碼:

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] 
+0

你錯過DOMAIN3,並且您已經丟失'('去年重寫規則 – 2012-02-07 15:25:47

+0

'它不work'沒有幫助,請告訴我哪URI沒有了。你 – anubhava 2012-02-07 15:27:11

+0

[我有這個評論框,對不起問題] Anubhava: 謝謝,但它不工作,我曾嘗試: 選項+的FollowSymLinks -MultiViews RewriteEngine敘述上 #DOMAIN2。 com => domain1.es/catalog RewriteCond%{HTTP_HOST} ^(www \。)?domain2 \ .com $ [NC] RewriteRule^http://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] 有了這個所有的域都是錯誤的。 – Nerque 2012-02-07 15:31:04