我在 apache 服务器上运行了两个版本的应用程序。现在我必须将一个版本指向主域www.example.com
,将另一个版本指向子域
mysite.example.com
。
我面临的挑战是,如果我仅输入,example.com
它会转到mysite.example.com
而不是www.example.com
。
.htaccess
就重定向而言,我没有在文件中配置任何内容。此外www
,和的 DNS 条目example.com
都指向同一个 IP
我的配置文件如下:
这是子域名
ServerName mysite.example.com
#ServerAlias mysite.example.com // not sure if i need alias
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/site1
<Directory /var/www/html/site1>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
这个是主域名
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/site2
<Directory /var/www/html/site2>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我想为子域提供一个版本,为主域提供另一个版本,涵盖所有 URL 可能性。
有人能指出我哪里做错了吗?
答案1
我不是这方面的专家,但我自己也想运行一个具有在线功能的本地托管服务器,几个月前我确实运行过它,但现在我又回到了它,说实话有点生疏了,所以我正在重新学习一切,使用 VHosts 并设置本地服务器以便以后上线,而且...真是一团糟哈哈...但我看到的并引用的是:
我面临的挑战是,如果我只输入 example.com,它会转到 mysite.example.com 而不是 www.example.com。
但是你提到了配置以下代表您的子域名...在这种情况下,它应该被反转...您会看到您将主域名指向您的:“/var/www/我的网站”它应该用于您的子域名...mysite.example.com相反。所以我猜你混淆了目录的条目。这就是为什么你的主域,它将mysite.example.com而不是 www.example.com 因为您已经以相反的方式设置了配置 :D
ServerName mysite.example.com
#ServerAlias mysite.example.com // not sure if i need alias
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
希望这有帮助。