2014-02-01 2 views
2

Я знаю, что есть тысячи тем по этой теме, но, несмотря на много часов поиска и попытки, я действительно не могу найти решение для своего дела. Поэтому я решил обратиться за помощью.Указание поддоменов на подкаталоги с .htaccess

Это моя панорама

1) У меня есть домен www.mydomain.com с Wordpress установки и сертификат Wildcard SSL

Как вы, наверное, знаете, Wordpress уже пишет некоторые правила в .htaccess, эти правила:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

2) Теперь мне нужно поставить дополнительные WordPress установки (без WPMU, но разные установки) в других поддоменов, указывая их подкаталогов, которые я хотел бы назвать «subdomain_NAMEOFTHESUBDOMAIN»

3), насколько я знаю, к продлить SSL-сертификат I не могу создавать субдомены через Cpanel, но я должен сделать это с .htaccess правил

Это где я был в состоянии получить:

1) Я создал подстановочную CNAME * .mydomain. com

2) Я создал каталог в моем public_html папку, которая называется «subdomain_xxx»

3) Я добавил эти правила (перед правилами WordPress), чтобы указать на поддомен «xxx.mydomain.com» в папку «subdomain_xxx»

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^subdomain_xxx/ - [L] 
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ 
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$ 
RewriteRule ^(.*)$ subdomain_xxx/$1 [L] 
</IfModule> 

Сначала это похоже на работу:

  • если я пойду в mydomain.com я получаю corretc «первого уровня» WordPress www.mydomain.com
  • если я иду на ANYTHING.mydomain.com Я до сих пор получаю www.mydomain.com
  • если я иду на xxx.mydomain.com Я правильно указал на установку wordpress, присутствующую в " subdomain_xxx «каталог

но есть проблема:

Если я пытаюсь повторить процедуру для любого другого Htaccess-подобласти/подкаталог пара, , например„subdomain_yyy“и» yyy.mydomain. com ", дублируя предыдущие правила:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^subdomain_yyy/ - [L] 
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ 
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$ 
RewriteRule ^(.*)$ subdomain_yyy/$1 [L] 
</IfModule> 

Я держать перенаправлен на первую подобласть созданы: xxx.mydomain.com

Чтобы быть совершенно ясно, что это мое полное.Содержание Htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteRule ^subdomain_xxx/ - [L] 
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ 
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$ 
RewriteRule ^(.*)$ subdomain_xxx/$1 [L] 

RewriteRule ^subdomain_yyy/ - [L] 
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ 
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$ 
RewriteRule ^(.*)$ subdomain_yyy/$1 [L] 
</IfModule> 

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

Конечно, есть много, я не понимаю, о .htaccess (и регулярное выражение), так что я не только ищет быстрое решение, но и некоторые другие информация о углубить свое понимание этого вопроса , Надеюсь, кто-то найдет для этого терпение.

Заранее спасибо

ответ

2

Я только что узнал, как правильно это сделать

правила я использовал все ошибались.

это правильный путь

RewriteCond %{HTTP_HOST} ^xxx.mydomain.com$ [NC] 
RewriteRule ^(.*)$ /subdomain_xxx/$1 [L] 

Если кто-то комментарий я буду рад прочитать его, все равно спасибо

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