Назад | Перейти на главную страницу

Не удается заставить субдомен работать с виртуальными хостами

Хорошо, я запускаю apache 2 с парой виртуальных хостов, и 2 из них работают в одном домене. Теперь моя проблема в том, что один из них должен работать в субдомене (dev.domain.com), а другой - во всем остальном, но я не могу заставить его работать.

У меня есть 2 файла в доступных для сайтов (dev.domain.com и domain.com), и оба включены с символическими ссылками на сайтах.

Это то, что у меня внутри файлов

dev.domain.com

<VirtualHost *:80>
 ServerName dev.domain.com
 ServerAlias development.domain.com

 DocumentRoot /home/myusername/public_www/dev.domain.com
 <Directory /home/myusername/public_www/dev.domain.com/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
  AllowOverride All
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
 </Directory>

 ErrorLog /var/log/apache2/error.log

 # Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn

 CustomLog /var/log/apache2/access.log combined
</VirtualHost>

domain.com

<VirtualHost *:80>
 ServerName domain.com
 ServerAlias *.domain.com *.domain.info

    <IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP_HOST} !^domain\.com$ [NC] 
  RewriteRule ^(.*)$ http://domain.com$1 [R=301,L]
 </IfModule>

 DocumentRoot /home/myusername/public_www/domain.com
 <Directory /home/myusername/public_www/domain.com/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
  AllowOverride All
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
 </Directory>

 ErrorLog /var/log/apache2/error.log

 # Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn

 CustomLog /var/log/apache2/access.log combined
</VirtualHost>

Так кто-нибудь знает, что не так с моей конфигурацией? Я был бы очень признателен за помощь, я пытался с этим вечно безуспешно.

Примечание. Мой реальный домен начинается с hu, поэтому я подумал, что dev.h .... будет загружен до файла h .....

ServerAlias *.domain.com *.domain.info означает, что определение будет использоваться для всех хостов в domain.com, перекрывая ваше определение dev.domain.com.

Вам действительно нужен подстановочный знак? Обратите внимание: если вы также не используете подстановочные знаки в записях DNS, в этом нет смысла, и вам следует просто создать псевдонимы для фактически существующих записей DNS.

Если вам действительно нужно использовать подстановочный знак, вам нужно удалить dev.domain.com vhost, и вместо этого используйте правила перезаписи в vhost domain.com для сопоставления http://dev.domain.com например http://www.domain.com/dev