2012-02-07 3 views
3

У меня есть три домена (domain1.es, domain2.com, domain3.com).Apache rewriterule и rewritecond с 3 доменами

мне нужно что:

  • 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 как дополнительный домен, настроенный на использование папки /public_html/domain3.com в виде веб-корневой папки.

Я попытался с 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

Я пишу правила домена3, но я не уверен.

Любая идея?

ответ

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, и вы не хватает '(' в последнем RewriteRule –

+0

'Это не work' не помогает Пожалуйста, скажите мне, какой URI не сделал для. . вы – anubhava

+0

[у меня возникли проблемы с этим поле для комментариев, извините] анубхава:. Спасибо, но это не работает, я пробовал: Options + 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

Смежные вопросы