У меня есть веб-сервер разработки (ubuntu + apache), к которому можно получить доступ через URL-адрес glacialsummit.com. По какой-то причине http://www.glacialsummit.com обслуживает страницы из каталога /srv/www/glacialsummit.com/, но http://glacialsummit.com обслуживает страницы из каталога / var / www /. Вот как выглядят некоторые из моих файлов конфигурации виртуального хоста
имя файла: /etc/apache2/sites-enabled/glacialsummit.com
<VirtualHost 97.107.140.47:80>
ServerAdmin sovereign@glacialsummit.com
ServerName glacialsummit.com
ServerAlias www.glacialsummit.com
DocumentRoot /srv/www/glacialsummit.com/public_html/
ErrorLog /srv/www/glacialsummit.com/logs/error.log
CustomLog /srv/www/glacialsummit.com/logs/access.log combined
</VirtualHost>
<VirtualHost 97.107.140.47:443>
ServerAdmin sovereign@glacialsummit.com
ServerName glacialsummit.com
ServerAlias www.glacialsummit.com
DocumentRoot /srv/www/glacialsummit.com/public_html/
ErrorLog /srv/www/glacialsummit.com/logs/error.log
CustomLog /srv/www/glacialsummit.com/logs/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/localcerts/www.glacialsummit.com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/www.glacialsummit.com.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
<VirtualHost 97.107.140.47:80>
ServerAdmin sovereign@glacialsummit.com
ServerName project.glacialsummit.com
ServerAlias www.project.glacialsummit.com
DocumentRoot /srv/www/project.glacialsummit.com/public_html/
ErrorLog /srv/www/project.glacialsummit.com/logs/error.log
CustomLog /srv/www/project.glacialsummit.com/logs/access.log combined
</VirtualHost>
## i have many other vhosts that work fine in this file
имя файла / etc / apache2 / sites-enabled / 000-default
<VirtualHost 97.107.140.47:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
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 None
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
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
имя файла: /etc/apache2/ports.conf
NameVirtualHost 97.107.140.47:80
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
Как мне сделать http://glacialsummit.com обслуживать веб-страницы из /srv/www/glacialsummit.com/public_html точно так же, как http://www.glacialsummit.com?
Каково имя всего сервера, кроме VirtualHosts? Бьюсь об заклад, это glacialsummit.com
... Если так, то это становится ServerName
для безымянного VirtualHost в 000-default.conf
, и этот VirtualHost переопределяет www.glacialsummit.com
VirtualHost.
ServerAlias *.glacialsummit.com
делает все (www, не-www и субдомены) ошибкой для псевдонима.
Под вашим ServerAlias
для самого верхнего виртуального хоста добавьте glacialsummit.com
вместе с www.glacialsummit.com