使用VirtualHosts和ServerAlias进行无法解释的重定向

时间:2014-01-12 12:00:28

标签: apache redirect ubuntu

使用虚拟主机和服务器别名,我得到一个奇怪的重定向,我不明白它的来源。

在Ubuntu 12.04上使用stock apache2。仅对/etc/apache2/...

中的文件进行了以下更改

我在文件sites-available/foo-com中添加了一个新的虚拟主机,并使用a2ensite

启用了它
<VirtualHost *:80>
    ServerName www.foo.om
    ServerAlias foo.com
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/www.foo.com 
    <Directory /var/www/www.foo.com/>
            Options FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>
</VirtualHost>

我还有www.bar.com的第二个虚拟主机,与上面完全相同,但foo替换为bar

我已将默认虚拟主机更改为其他文档根目录

    DocumentRoot /var/www/default 
    <Directory /var/www/default/>
    .....

当我导航到http://foo.com时,我获得301重定向到http://www.foo.com/www.foo.com,这显然会返回404。更奇怪的是,导航到http://bar.com无需重定向即可正确返回相关网站。

我一直在试图理解这种奇怪的行为。我已经验证了apache confs中的其他任何地方都没有重定向。除了上面的虚拟主机之外,没有任何地方引用foo.com。文档根目录中没有.htaccess文件。我从头开始创建目录。

还有什么可能导致这种情况?

1 个答案:

答案 0 :(得分:1)

来自http://httpd.apache.org/docs/2.2/en/howto/htaccess.html

  

进一步注意,httpd必须在所有文件中查找.htaccess文件   更高级别的目录,以便有完整的补充   它必须适用的指令。 (参见指令如何   因此,如果从目录中请求文件   / www / htdocs / example,httpd必须查找以下文件:

     

/。htaccess的
  /www/.htaccess
  /www/htdocs/.htaccess
  /www/htdocs/example/.htaccess

查看重写日志,看起来你的/ var / www中有一个.htaccess文件。删除它,或者最好是禁用.htaccess可以解决您的问题。