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

  • Автор темы Автор темы Basior
  • Дата начала Дата начала

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
Было бы не плохо другие рабочие варианты ещо посоветовать, если такие еще существуют...
 
Оригинально! Вот кому-то пригодится может. Только уже без АП#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%.
 
или я чет не пойму, или у меня это совсем не отработало. что я сделал не так!?
 
выделенный VDS, веб-сервер nginx, стоит мускул. возился и пробовал эту штуку делать через конфиги.
 
rapsik
У тебя Nginx, а это конфиг для Apache
 
а для nginx есть решения? те что нашел в сети, пока не проходят... или я чего-то не учитываю
 
PHP:
$_SERVER["SERVER_NAME"]
И делай, что тебе заблагорассудится
 
А что сложного взять за основу любой конфиг домена и добавить там subdomain. перед именем домена?

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

Что значит "пока не прет"?
 
ну, я не вижу, что мой поддомен открывается по адресу sub.domain.com - вылазит 403 ошибка
 
создал папку в корне сайта '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

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