Мне удалось найти перезапись для создания поддоменов (у меня есть домен с подстановочными знаками, указывающий на мой сервер; *.domain.com
.
Если я пойду в test.domain.com
, он отлично работает поперек:
/var/www/domain.com/www/test/
Если я сделаю example.test.domain.com
, он должен сделать это:
/var/www/domain.com/www/test/example/
Это еще один каталог в test
каталог.
Я обнаружил, что это переписанный вариант, но как мне реализовать в нем поддомен с двумя каталогами?
if ($host !~* ^www\.domain\.domain$) {}
if ($host ~* ^([^.]+)\.domain\.com$) {
set $auto_subdomain $1;
}
if (-d /var/www/domain.com/www/$auto_subdomain) {}
if (-f /var/www/domain.com/www/$auto_subdomain$uri) {
rewrite ^(.*)$ /$auto_subdomain$uri;
break;
}
Пытаться /var/www/domain.com/www/example.test/
вместо того /var/www/domain.com/www/test/example/
Обновление: на самом деле то, что вы пытаетесь сделать, - это просто второй виртуальный хост, не более того. Почему бы вам не попробовать эту конфигурацию nginx?
server {
# Replace this port with the right one for your requirements
listen 80 [default|default_server]; #could also be 1.2.3.4:80
# Multiple hostnames separated by spaces. Replace these as well.
server_name domain.com test.domain.com example.test.domain.com *.domain.com; # Alternately: _
root /var/www/$host;
error_page 404 errors/404.html;
access_log logs/star.yourdomain.com.access.log;
index index.php index.html index.htm;
# serve static files directly
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
# By all means use a different server for the fcgi processes if you need to
fastcgi_pass 127.0.0.1:YOURFCGIPORTHERE;
}
location ~ /\.ht {
deny all;
}
}
И просто создайте каталоги для каждого домена / поддомена, т.е.
/var/www/domain.com
/var/www/test.domain.com
/var/www/example.test.domain.com
Источник: http://wiki.nginx.org/VirtualHostExample
Также ознакомьтесь с этим HOWTO от Slicehost относительно nginx vhosts http://articles.slicehost.com/2008/5/16/ubuntu-hardy-nginx-virtual-hosts
Я не думаю, что это сработает с поддоменом с подстановочными знаками. Вы должны добавить новую зону для test.domain.com, имеющую внутри * .test.domain.com