基于 Apache2 名称的虚拟主机始终重定向 301

基于 Apache2 名称的虚拟主机始终重定向 301

我有一台使用 Apache 2.2 的服务器(运行 Debian Squeeze),上面有 4 个站点在运行。我使用基于名称的虚拟主机,因为我只有一个 IP。初始配置已使用 Webmin 进行,可能有些地方出了问题。

firstdomain.com 是我的默认域名,并且运行正常,seconddomain.com 是另一个正常运行的网站。现在我想将 lastdomain.tk 添加为新网站,因此我创建了这个配置文件:

root@webamp:/etc/apache2# cat sites-available/lastdomain.tk.conf 
<VirtualHost *:80>
DocumentRoot /home/server/Condivisione/RAID/lastdomain.tk
ServerName www.alazanes.tk
ServerAlias alazanes.tk
</VirtualHost>

我已将其添加到已启用的站点并重新启动了 apache。 问题是,如果我访问 lastdomain.tk(或 www.lastdomain.tk),我会被重定向到 firstdomain.com 并进行 301 重定向。

lastdomain.tk 和 www.lastdomain.tk 都是指向我的 IP 地址的 A DNS 记录。

奇怪的是,如果将 lastdomain.tk 的 DocumentRoot 更改为

 DocumentRoot /home/server/Condivisione/RAID/Sito_SecondDomain

我无需重定向即可正确看到 seconddomain.com 的内容(lastdomain.tk 显示在地址栏上)

这些是我正在使用的其他配置。

root@webamp:/root#  source /etc/apache2/envvars ; /usr/sbin/apache2 -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  webamp.firstdomain.com (/etc/apache2/sites-enabled/ssl.bbteam:1)
*:80                   is a NameVirtualHost
     default server firstdomain.com (/etc/apache2/sites-enabled/000-default:7)
     port 80 namevhost firstdomain.com (/etc/apache2/sites-enabled/000-default:7)
     port 80 namevhost www.lastdomain.tk (/etc/apache2/sites-enabled/lastdomain.tk.conf:1)
     ## other domains ##
     port 80 namevhost seconddomain.com (/etc/apache2/sites-enabled/seconddomain.com.conf:1)
Syntax OK

默认配置文件的内容是

root@webamp:/etc/apache2# cat sites-available/default
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName firstdomain.com
ServerAlias www.firstdomain.com direct.firstdomain.com
DocumentRoot /home/server/Condivisione/RAID/Sito_Web_Apache_su_80

ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>

第二个域配置文件的内容是

root@webamp:/etc/apache2# cat sites-available/seconddomain.com.conf 
<VirtualHost *:80>
DocumentRoot /home/server/Condivisione/RAID/Sito_SecondDomain
ServerName seconddomain.com
ServerAlias www.seconddomain.com direct.seconddomain.com
#redirect 301 / http://www.seconddomain.com/
<Directory "/home/server/Condivisione/RAID/Sito_SecondDomain">
    allow from all
    Options +Indexes
</Directory>
</VirtualHost>

可能是文件权限问题?

root@webamp:/root# ls -lh /home/server/Condivisione/RAID/
total 7.1M
drwxrwxr-x 15 www-data server   4.0K Jun  5 13:29 Sito_SecondDomain
drwxrwxrwx 23 server   server   4.0K Jun  7 16:22 Sito_Web_Apache_su_80
drwxrwxr-x 17 www-data server   4.0K Jun  8 09:56 lastdomain.tk

有人知道发生了什么事吗?

谢谢,弗朗西斯科

更新

即使我使用子目录,它也会被 301 重定向,例如如果我导航到

lastdomain.tk/install

我被重定向到

firstdomain.com/install

答案1

您的问题似乎有点过分,但我大致知道您在寻找什么。问题可能是由于您没有/home/server/Condivisione/RAID/为 lastdomain.tk 创建文件夹。您可以通过 进行创建mkdir /home/server/Condivisione/RAID/lastdomain.tk

当您创建 lastdomain.tk 配置时,webmin 应该看起来像:

Handle connections to address -- Any Address
Add name virtual server address (if needed) -- Checked
Listen on address (if needed) -- Checked
Port -- 80
Document Root -- /home/server/Condivisione/RAID/lastdomain.tk
Allow Access to this directory -- Checked
Server Name -- lastdomain.tk
Add virtual server to file -- New file under virtual servers directory /etc/apache2/sites-available
Copy directives from -- Nowhere

创建后,请确保转到虚拟服务器(用于 lastdomain.tk)并单击网络和地址并设置:

Alternate virtual server names: www.lastdomain.tk
Server admin email address: [email protected]

完成后,返回虚拟服务器并单击“别名和重定向”,确保Permanent URL redirects(Code 301) 下没有设置任何内容。如果有,请将其删除。

完成所有这些之后,选择“应用更改”。

如果您仍然遇到此问题,请发表评论,我会尽力回复您。

希望这对 DFTBA 有帮助。:)

相关内容