子域名始终重定向到主域名 - Apache2 VirtualHosts 和 Debain

子域名始终重定向到主域名 - Apache2 VirtualHosts 和 Debain

我想使用 apache2 VirtualHosts 设置一个主站点和一个用于开发的子域。我的 site.conf 虚拟主机文件如下所示:

<VirtualHost *:80>
        ServerName dev.example.com

        DocumentRoot /var/www/site/subdomain
        <Directory /var/www/site/subdomain >
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                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>

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

        CustomLog ${APACHE_LOG_DIR}/sub.log combined
</VirtualHost>

<VirtualHost *:80>
        ServerName www.example.com
        ServerAlias example.com

        DocumentRoot /var/www/site/main
        <Directory /var/www/site/main >
                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>

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

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

问题是每次我访问 dev.example.com 时,我只会得到 example.com。

我尝试了能找到的所有其他解决方案(使用文字 IP、重新排序、使用端口而不是命名主机)……我现在完全陷入困境。有人有什么想法吗?

编辑: 这是我的虚拟主机转储(相关部分):

 port 80 namevhost dev.example.com (/etc/apache2/sites-enabled/example.conf:1)
 port 80 namevhost www.example.com (/etc/apache2/sites-enabled/example.conf:44)

另外,如果我删除主域名站点,子域名站点根本就无法被检测到。

答案1

确保你的网站启用了

a2ensite dev.mysite.com

完成此操作后,配置文件的符号链接将被放置在 sites-enabled 目录中,如果不存在其他问题,则应该允许访问该站点。

这个问题提供了更多细节。

答案2

WordPress 是问题所在

或者更确切地说,我不知道我必须将 Wordpress 站点 URL 配置为子域,否则它只会重定向到给定的域......

因此解决方案是:打开wp_options表并编辑 site_url 以包含子域。

相关内容