Apache переписать и переписать с 3 доменами - PullRequest
3 голосов
/ 07 февраля 2012

У меня есть три домена (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 похож на дополнительный домен, настроенный на использование папки /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 Ответ

1 голос
/ 07 февраля 2012

Используйте этот код:

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...