2012-08-20 3 views
0

мне было интересно, если это возможно, чтобы создать субдомен с помощью кода HTAccess только (без установки одного в панели управления хостингом)htaccess субдомены?

У меня есть папка с именем «мобильный», Это место так: http://www.domain.com/mobile

Я хочу, чтобы иметь возможность ввести http://mobile.domain.com и посмотреть папку для мобильных устройств, Можно ли достичь этого только путем написания кода в htaccess? если так, как это сделать?

Thanks

ответ

0

Зависит от конфигурации ваших доменов.

Если вы установите их с групповым символом ServerAlias, например, так:

ServerName example.com 
ServerAlias *.example.com 

DocumentRoot /var/www/example.com/ 

Запрос приземлится в папке и .htaccess будут оценены, что позволяет использовать mod_rewrite. Если вы не указали директиву ServerAlias, запрос никогда не достигнет этой папки, и вы не сможете ничего с ней сделать.

1

Вы можете сделать это до тех пор, пока он настроен на обработку всех запросов для доменов *.domain.com, а затем убедитесь, что у вас есть DNS-сервер mobile.domain.com с номером www.domain.com.

Если вы знаете, что субдоменов вы хотите, вы можете перечислить через них, как это (помещая эти правила в файле Htaccess в корневом каталоге):

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^(www\.) [NC] 
RewriteCond %{HTTP_HOST} ^mobile\.domain\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/mobile/ 
RewriteCond %{DOCUMENT_ROOT}/mobile%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/mobile%{REQUEST_URI} -d 
RewriteRule ^(.*)$ /mobile/$1 [L] 

В противном случае, если вы хотите сделать это произвольно, он становится немного более сложным:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^(www\.) [NC] 
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC] 
RewriteCond %1:%{REQUEST_URI} !^([^:]+):/\1/ 
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC] 
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -d 
RewriteRule ^(.*)$ /%1/$1 [L] 
Смежные вопросы