Apache 虚拟主机 - 链接到同一网站

Apache 虚拟主机 - 链接到同一网站

我为两个论坛设置了两个 Apache 虚拟主机。访问其中一个时,会链接到根域页面。

这是我的第一个虚拟主机

<VirtualHost *:80>
    ServerName krypt.fun
    DocumentRoot /var/www/flarum/public

    <Directory /var/www/flarum/public>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog /var/log/apache2/flarum_error.log
    CustomLog /var/log/apache2/flarum_access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =krypt.fun
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

我的第二个

<VirtualHost *:80>
    ServerName scambaiting.krypt.fun
    DocumentRoot /var/www/scambaiting/public

    <Directory /var/www/scambaiting/public>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/apache2/flarum_error.log
    CustomLog /var/log/apache2/flarum_access.log combined
</VirtualHost>

但是,scambaiting.krypt.fun 只是导致 krypt.fun 有什么想法吗?

答案1

该问题是由配置文件的名称引起的。使用命名结构来确保“默认”站点 (flarum) 始终位于目录的最后,即可解决该问题。

例如,你可以这样做:

  1. 更改目录sites-available
    cd /etc/apache2/sites-available 
    
  2. 禁用当前启用的站点:
    sudo a2dissite flarum-le-ssl.conf
    sudo a2dissite scambaiting.conf
    
  3. 重命名配置文件以使用数字前缀:
    sudo mv scambaiting.conf 100-scambaiting.conf
    sudo mv flarum-le-ssl.conf 999-flarum-le-ssl.conf
    
  4. 重新启用站点:
    sudo a2ensite flarum-le-ssl.conf
    sudo a2ensite scambaiting.conf
    
  5. 重新加载Apache:
    sudo service apache2 reload 
    
    笔记:或者,您可以发出一个restart

现在,当收到 Web 服务器的流量时,将首先将其与文件进行比较100,然后再与999文件进行比较。当您向服务器添加更多站点时,您可以添加(甚至重复使用)这些数字,以确保按特定顺序将站点与启用 Apache 的站点进行比较。

当然,您不需要使用数字前缀,但是,catch-all 配置文件的名称应该始终最后出现在按字母顺序排列的目录列表中。

相关内容