Поддомены. Как создать?

Basior

Новичок
Добрый день.
Помогите пожалуйста, вот в .conf пишу:
PHP:
NameVirtualHost host.com:80
<VirtualHost *:80>
    ServerName host.com
    ServerAlias www.host.com
    ServerAdmin [email protected]
    DocumentRoot "С:/home/host.com/www"
    ErrorLog "logs/www.host.com-error.log"
    CustomLog "logs/www.host.com.ua.log" common
	RewriteEngine On
	RewriteCond %{HTTP_HOST} !^www.host.com$ [NC]
	RewriteCond %{HTTP_HOST} ^((.*)\.)host.com$
	RewriteRule ^/(.*) /%2/$1
</VirtualHost>
<Directory "С:/home/host.com/www">
     Options Indexes FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
</Directory>
Рыл-перерыл много сайтов и вот нашел один рабочий вариант для создания поддоменов.
В папке С:/home/host.com/(www) при создание еще одной папки создается автоматически поддомен. Допусти в www закинуть test, то test и будет название поддомена, test.host.com.
Как бы все работает нормально, но по скрину видно что не отображается иконки, как исправить?
1.jpg 2.jpg
Было бы не плохо другие рабочие варианты ещо посоветовать, если такие еще существуют...
 

Basior

Новичок
Оригинально! Вот кому-то пригодится может. Только уже без АП#2.
Создаем .htaccess следующего содержания:
PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^(www\.)?host\.com$ [NC]
RewriteCond %{HTTP_HOST}---%{REQUEST_URI} ^([^\.]+)\.host\.com---/([^/]+)? [NC]
RewriteCond %1---%2 !^(.*)---\1$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%1/ -d
RewriteRule ^(.*)?$ %1/$1 [QSA,PT]
Теперь любая папка например http://host.com/test/ будет доступна по адресу http://test.host.com/
Вот ещо один вариант. На тот случай если вы хотите что бы все поддомены лежали в папке например subdomain.
PHP:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.host\.com$
RewriteCond %{HTTP_HOST} (www\.)?(.*)\.host\.com$
RewriteCond %{REQUEST_URI} !subdomain/
RewriteRule ^(.*)$ subdomain/%2/$1
PS: Оба варианты проверены лично мной и работают на 100%.
 

rapsik

Новичок
или я чет не пойму, или у меня это совсем не отработало. что я сделал не так!?
 

rapsik

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

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
rapsik
У тебя Nginx, а это конфиг для Apache
 

rapsik

Новичок
а для nginx есть решения? те что нашел в сети, пока не проходят... или я чего-то не учитываю
 

С.

Продвинутый новичок
PHP:
$_SERVER["SERVER_NAME"]
И делай, что тебе заблагорассудится
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
А что сложного взять за основу любой конфиг домена и добавить там subdomain. перед именем домена?

Только надо иметь в виду, что DNS должен знать о том, что такая запись указывает на такой-то IP.
 

rapsik

Новичок
да, делал я так, не выходит чего-то... субдомен добавлял по аналогии sub.domain.com, прописывал где нужно конфиги для nginx, создавал символические ссылки, перезапускал всё это пользуясь Putty и пока не прет.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
rapsik

Что значит "пока не прет"?
 

rapsik

Новичок
ну, я не вижу, что мой поддомен открывается по адресу sub.domain.com - вылазит 403 ошибка
 

rapsik

Новичок
создал папку в корне сайта 'test1'.
создал файл 'default' в etc/nginx/sites-available
содержимое файла 'default'
PHP:
server {
    listen 80;
    server_name test1.detroc.ru www.test1.detroc.ru;
    root /var/www/detroc.ru/test1;

    if ($host !~* ^www\.) {
        rewrite ^(.*)$ http://www.$host$1 permanent;
    }
        
    index index.php index.html;

    location ~ /\.ht {
        deny all;
        break;
    }
	
}
создал линк на этот файл для sites-enables:
PHP:
# ln -s /etc/nginx/sites-available/test1.detroc.ru /etc/nginx/sites-enabled/test1.detroc.ru
дал команду sudo nginx -t
дал команду sudo service nginx restart

и ничего
 
Сверху