2014-01-14 4 views
1

У меня есть домен, скажем mydomain.com.переписать поддомен в директорию на том же сервере

Я хочу, чтобы каждый поддомен этого, чтобы загрузить содержимое каталога с таким же названием ... Например, если кто-то пишет

http://sub.mydomain.com/index.php

Я хочу показать ему содержимое

http://sub.mydomain.com/sub/index.php

Тем не менее, я хочу, чтобы показать в адресной строки http://sub.mydomain.com/index.php

Апач ВХост, как

<VirtualHost *:80> 
    ServerName *.mydomain.com 
    DocumentRoot /var/www/vhosts/mydomain.com/subdomains/subs/www 
    ... more stuff ... 
</VirtualHost> 

так в файловой системе, файлы для примера выше будет находиться в каталоге

/var/www/vhosts/mydomain.com/subdomains/subs/www/ к югу

Я попробовал многие из предлагаемых решений здесь, но большинство из них были переадресовывает к какой-либо другой домен/поддомен или в конечном итоге в переадресовывающем цикла :(

Тиа

ответ

2

Вы должны добавить некоторые правила перезаписи, которые проверяют поддомен, а затем переписать на соответствующий путь:

<VirtualHost *:80> 
    ServerName mydomain.com 
    ServerAlias *.mydomain.com 

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} (.*)\.mydomain\.com 
    RewriteRule ^/(.*)$ /%1/$1 

    DocumentRoot /var/www/vhosts/mydomain.com/subdomains/subs/www 

    ... more stuff ... 

</VirtualHost> 

Что это будет сделать, это захват что-либо предшествующее «.mydomain.com» затем переписывает его в URL как% 1, $ 1 будет запрошенным ресурсом, таким как index.html

Знайте, что это может вас пошевелить, если www.mydomain.com является допустимым доменом для вашего сайта!

+0

Большое спасибо за ваш ответ! Это правильно, вы спасли меня много времени, но я не могу принять его, пока вы не измените свой пост и изменить RewriteCond% {HTTP_HOST} (. *). \ MYDOMAIN \ .com к RewriteCond% {HTTP_HOST } (. *) \. mydomain \ .com (маленькая опечатка в бегстве от точки) Еще раз большое спасибо. –

+1

Хорошее место! Исправлено сейчас. – arco444

0

Попробуйте этот код в файле DOCUMENT_ROOT/.htaccess:

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^sub\.[^.]+\.[^.]+$ [NC] 
RewriteRule !^sub(|/$) /sub%{REQUEST_URI} [L,NC] 
+0

Благодарим вас за то, что я хочу, чтобы каждый субдомен выполнял такое внутреннее перенаправление, а не только «суб» субдомен (как указано в моем вопросе) –

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