我有一个 AWS 虚拟服务器,装有 ubuntu 14.04 和 apache 2.4.7。我有两个域名(假设 name1.com 和 name2.com),我希望它们都指向服务器的 IP,并且 apache 自动重定向到文件夹(假设为 /var/www/html/name1 和 /var/www/html/name2 )。
两个站点均可在http://ip-server/name1
和下访问http://ip-server/name2
。
我按照通常的说明进行操作:在 中/etc/apache2/sites-available/
复制000-default.conf
到001-name1.conf
。这是文件的内容:
<VirtualHost *:80>
ServerName name1.com
ServerAlias www.name1.com
DocumentRoot /var/www/html/name1
LogLevel error
ErrorLog ${APACHE_LOG_DIR}/name1.error.log
CustomLog ${APACHE_LOG_DIR}/name1.access.log combined
</VirtualHost>
然后我用 激活它sudo a2ensite 001-name1.conf
,并用 重新启动 apache sudo service apache2 restart
。
但是当我尝试(在新的私有模式浏览器中以避免缓存)时,它仍然将我重定向到apache 的http://name1.com
缺陷。index.html
当我跑步时apache2ctl -S
我得到:
VirtualHost configuration:
*:80 is a NameVirtualHost
default server ip-x-x-x-x.eu-west-1.compute.internal (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost ip--x-x-x-x.eu-west-1.compute.internal (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost name1.com (/etc/apache2/sites-enabled/001-name1.conf:1)
alias www.name1.com
日志是空的,所以我不知道还能做什么。有什么想法吗?
答案1
首先禁用默认网站 ( sudo a2dissite 000-default.conf
)。如果您不在此提供内容,请将其删除。
站点的加载顺序很重要(这就是为什么默认站点以 000 为前缀)。默认站点将是第一个加载的 .conf(基于字母顺序)。如果您已ServerName
在 default.conf 中设置,那么无论其后是哪个 vHost,它都会响应。
一旦您禁用默认站点,请退出 apache,如果它不起作用,请在下面发表评论。我们会尝试其他方法。