2014-01-12 57 views
1

使用虚拟主机和服务器别名时,出现一个奇怪的重定向,我不明白它来自哪里。使用虚拟主机和ServerAlias进行不明重定向

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

的文件只有以下更改我添加了一个新的虚拟主机作为文件sites-available/foo-com在如下与a2ensite

<VirtualHost *:80> 
    ServerName www.foo.om 
    ServerAlias foo.com 
    ServerAdmin [email protected] 

    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,而这正是通过bar

取代与上述相同,但与foo我已经改变缺省虚拟主机到一个不同的文档根

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文件..我从头开始创建目录。

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

+0

几点建议:(1)设置'LogLevel debug',并检查错误日志。 (2)'egrep -ri'(Redirect | RewriteRule)'/ etc/apache2'确保没有更多的重定向没有找到。 (3)将'RewriteLogLevel'调高至3或更高,并检查重写日志。 –

+0

谢谢。我已经将任何实例的目录刷新为重写目录,除了与DAV相关的目录设置为默认安装的“重定向 - 仔细”外,没有其他任何实际重定向到url。 – aviks

+0

感谢您的其他建议。错误日志中没有任何内容出现。启用重写日志显示重写正在发生,但我不明白为什么它应该。 Gist在这里,你愿意看看吗? https://gist.github.com/aviks/8384895 – aviks

回答

1

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

还应注意到的httpd必须寻找所有 的较高级别目录的.htaccess文件,才能有它必须适用 指令的全套。 (参见如何应用指令 部分)。因此,如果一个文件被请求了目录 /网络/ htdocs中/例如,httpd的必须寻找下列文件:

/.htaccess
/WWW /的.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess

看着你重写的日志,它似乎你有被困在/ var/WWW .htaccess文件。删除它,或者,最好禁用.htaccess应该可以解决你的问题。

+0

是的,[gist](https://gist.github.com/aviks/8384895)清楚地表明了这一点。因为它只影响foo。com,它必须位于/var/www/www.foo.com。 –

+0

谢谢!是的,上级目录中有一个.htaccess。唷! – aviks

相关问题