Page 1 of 1

[как сделать?] Автосабдомены в папках

Posted: Mon May 23, 2016 8:04 am
by cqdx
Решения нагуглить не удалось.

Суть какова
любая папка в корне public_html должна срабатывать как сабдомен
ака
.../site.ru/public_html/sub1
открываться должно как sub1.site.ru
и так для любой папки

Такое решение есть из коробки в ispmanager

Re: [как сделать?] Автосабдомены в папках

Posted: Mon May 23, 2016 8:37 am
by Mr.Erbutw
cqdx wrote:Решения нагуглить не удалось.

Суть какова
любая папка в корне public_html должна срабатывать как сабдомен
ака
.../site.ru/public_html/sub1
открываться должно как sub1.site.ru
и так для любой папки

Такое решение есть из коробки в ispmanager
В сторону .htaccess

Code: Select all

RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ http://domain.com/sub/$1 [L,NC,QSA]

Re: [как сделать?] Автосабдомены в папках

Posted: Mon May 23, 2016 8:45 am
by skurudo
cqdx wrote:Решения нагуглить не удалось.
А мне вот удалось - viewtopic.php?t=3613#p4724
Вопрос уже обсуждался.
Впрочем имеет смысл его освежить, да.

Re: [как сделать?] Автосабдомены в папках

Posted: Mon May 23, 2016 9:00 am
by cqdx
Mr.Erbutw wrote:
cqdx wrote:Решения нагуглить не удалось.

Суть какова
любая папка в корне public_html должна срабатывать как сабдомен
ака
.../site.ru/public_html/sub1
открываться должно как sub1.site.ru
и так для любой папки

Такое решение есть из коробки в ispmanager
В сторону .htaccess

Code: Select all

RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ http://domain.com/sub/$1 [L,NC,QSA]
Не совсем удобно таким макаром делать
У меня несколько десятков доменов и на каждом сотня две сабов
Но смысл примерно понятен буду копать в этом направлении

Re: [как сделать?] Автосабдомены в папках

Posted: Mon May 23, 2016 9:14 am
by skurudo
cqdx wrote:Такое решение есть из коробки в ispmanager
А как сейчас это сделано там? Какие-нибудь скрины, конфиги?

Re: [как сделать?] Автосабдомены в папках

Posted: Mon May 23, 2016 9:50 am
by cqdx
skurudo wrote:
cqdx wrote:Такое решение есть из коробки в ispmanager
А как сейчас это сделано там? Какие-нибудь скрины, конфиги?
конфиги апача и nginx для домена в котором включена эта опция
http://pastebin.com/c4cBBf0M
http://pastebin.com/a7QEM9Z5

Re: [как сделать?] Автосабдомены в папках

Posted: Wed May 25, 2016 12:00 pm
by cqdx
Апну топик

Re: [как сделать?] Автосабдомены в папках

Posted: Wed May 25, 2016 3:01 pm
by skurudo
cqdx wrote:Апну топик
Лучше добавить идею! :)
https://bugs.vestacp.com/

Re: [как сделать?] Автосабдомены в папках

Posted: Wed May 25, 2016 3:37 pm
by cqdx
skurudo wrote:
cqdx wrote:Апну топик
Лучше добавить идею! :)
https://bugs.vestacp.com/
done! https://bugs.vestacp.com/issues/240

Re: [как сделать?] Автосабдомены в папках

Posted: Mon Sep 19, 2016 6:45 pm
by GalaxyData
Режим работы веб-сервера nginx+php-fpm
Заменить
1. 8.8.8.8 на ваш IP
2. site.ru на адрес вашего сайта

Code: Select all

server {
      listen     8.8.8.8:80;
       server_name site.ru *.site.ru;
        root /home/admin/web/site.ru/public_html/$subdomain;
        index       index.php index.html index.htm;
        set $subdomain "";
        if ($host ~* ^([a-z0-9-\.]+)\.site.ru$) {
            set $subdomain $1;
        }
        if ($host ~* ^www.site.ru$) {
            set $subdomain "";
        }

    access_log  /var/log/nginx/domains/site.ru.log combined;
    access_log  /var/log/nginx/domains/site.ru.bytes bytes;
    error_log   /var/log/nginx/domains/site.ru.error.log error;

    location / {

        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            fastcgi_pass    127.0.0.1:9001;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    }

    error_page  403 /error/404.html;
    error_page  404 /error/404.html;
    error_page  500 502 503 504 /error/50x.html;

    location /error/ {
        alias   /home/admin/web/site.ru/document_errors/;
    }

    location ~* "/\.(htaccess|htpasswd)$" {
        deny    all;
        return  404;
    }

    include     /etc/nginx/conf.d/phpmyadmin.inc*;
    include     /etc/nginx/conf.d/phppgadmin.inc*;
    include     /etc/nginx/conf.d/webmail.inc*;

    include     /home/admin/conf/web/nginx.site.ru.conf*;
}
Эта конфигурация работает следующим образом:

АДРЕС URL ПУТЬ НА СЕРВЕРЕ
http://site.ru/ /var/www/site.ru/
http://www.site.ru/ /var/www/site.ru/
http://vasya.site.ru/ /var/www/site.ru/vasya/
http://vasya.ivanov.site.ru/ /var/www/site.ru/vasya.ivanov/
Если посетитель запросит субдомен, каталог которого не существует, ему будет выдана стандартная ошибка 404 (Файл не найден).