У меня есть domain1.tld и domain2.tld.Domain1.tld является основным именем домена, а domain2.tld является просто псевдонимом.У меня domain2.tld успешно перенаправлен на domain1.tld через HTACCESS, но я хочу, чтобы все субдомены на domain2.tld также перенаправили на свой параллельный субдомен на domain1.tld, динамически.
Например: bla.domain2.tld следует перенаправить на bla.domain1.tld, а foo.domain2.tld следует перенаправить на foo.domain1.tld.
Это решение должно быть динамическим, а не жестко заданным для конкретных поддоменов.
Ха-ха, я думаю, что я пишу сценарий "все в одном", включающий субдомены, псевдоним перенаправления домена в HTACCESS.
Информация:
Я нахожусь на Bluehost, без доступа к VHOSTS, HTTPD.CONF и т. Д.
У меня есть сеть поддоменов Wordpress (мультисайт).Это означает, что мои поддоменов domain1.tld являются виртуальными.Wordpress справляется с этим, поэтому, пока я могу полностью перенаправить foo.domain2.tld на foo.domain1.tld, Wordpress должен быть неискушенным и работать правильно.Правильно?
В Wordpress есть плагин «Профессиональное сопоставление доменов».Это позволяет сайтам в моей сети иметь собственные доменные имена.Но рассматриваемая проблема касается только сайтов в моей сети, которые не имеют свои собственные доменные имена и, следовательно, используют субдомены в моем основном домене (domain1.tld).
Таким образом, у меня есть подстановочный субдомен для domain1.tld.
Но у меня также есть подстановочный субдомен для domain2.tld, просто чтобы убедиться, что все субдомены наdomain2.tld собираются на тот же IP-адрес, что и domain1.tld: я думаю, что тогда эти поддомены должны быть доступны для чтения HTACCESS в моей корневой папке.
Это правило вмой HTACCESS, который я ожидаю сделать следующим образом:
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+\.)?domain2\.com$ [NC]
RewriteRule ^(www\.)?([a-z0-9-]+\.)?(.*) http\:\/\/%2domain1\.com\/ [L]
Но это не работает.Чего мне не хватает?
Я также пытался использовать переменную окружения, например:
RewriteCond %{HTTP_HOST} ^(www\.)?[E=subdm:([a-z0-9-]+\.)]?domain2\.com [NC]
RewriteRule ^(.*) http\:\/\/%{ENV:subdm}domain1\.com\/ [L]
... но это просто равнины, ломающие оба домена.: D
Я относительно опытен с регулярными выражениями, поэтому насколько комфортно я работаю с HTACCESS, но на самом деле я совсем новичок в мире HTACCESS.Мне нужна другая пара глаз!
↓ ОБНОВЛЕНИЕ (2011-11-08 9:33 EST) ↓
Я попробовал первое решение, предложенное Джоном Линем, и мне пришлось немного его отредактировать.Первоначально он не обрабатывал domain2.com без субдомена, пока я не поместил точку во вторую пару скобок совпадения и следовал за парой со знаком вопроса.
Как вы можете видеть ниже, я пошел вперед ипредоставил все содержимое моего HTACCESS, на случай, если вы обнаружите, что что-то конфликтует.
В настоящее время правильно перенаправляется с помощью рекомендуемого RewriteRule: www.domain2.com, domain2.com и domain2.com/foo В настоящее время НЕТперенаправление с предложенным RewriteRule: foo.domain2.com
# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+\.)?domain2\.com$ [NC]
RewriteRule ^(.*)$ http\:\/\/%2domain1\.com\/$1 [L,R]
# BEGIN WordPress
RewriteBase /
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]
# END WordPress