为什么我的Apache在无限redirect循环中?

我们目前在IT部门设立了一个内部网站it.example.com ,它托pipe着一个Redmine网站。

我想设置Apache,以便如果用户转到kb.example.com它将它们redirecthttp://it.example.com/some/path/to/knowledge-base作为快捷方式。

我在httpd.conf末尾添加了一个<VirtualHost> ,现在每当我尝试点击主站点(it.example.com)时,浏览器都会进入无限redirect循环:

http://it.example.com/projects/knowledge-baseprojects/knowledge-baseprojects/knowledge-baseprojects/knowledge-baseprojects/knowledge-baseprojects/knowledge-baseprojects/knowledge-baseprojects/knowledge-baseprojects/knowledge-baseprojects/knowledge- baseprojects /知识baseprojects /知识baseprojects /知识baseprojects /知识baseprojects /知识baseprojects /知识baseprojects /知识baseprojects /知识baseprojects /知识baseprojects /知识库

这是我的httpd.conf

 LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-4.0.37/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.37 PassengerDefaultRuby /usr/bin/ruby </IfModule> ServerName it.example.com ServerAdmin [email protected] DocumentRoot /var/www/redmine-2.4.3/public ErrorLog logs/redmine_error_log SetEnv RAILS_ENV production SetEnv RailsEnv production #If you are using mod_fcgid and are going to upload files larger than #131072 bytes you should consider adding the following line #that allows to upload files up to 20 mb MaxRequestLen 20971520 <Directory "/var/www/redmine-2.4.3/public"> Options Indexes ExecCGI FollowSymLinks -MultiViews Order allow,deny Allow from all AllowOverride all </Directory> <VirtualHost *:80> ServerName kb.example.com Redirect / http://it.example.com/projects/knowledge-base </VirtualHost> 

所以它看起来像VirtualHost被忽略,kb.example.com的规则始终有效 – 从而导致无限的redirect…

我想你需要将现有的it.example.com定义包装在<VirtualHost>块中。 我认为这是由于没有它的虚拟主机定义, it.example.comkb.example.com成为默认的虚拟主机。 如果没有find合适的虚拟主机,这将是什么,然后回来自己…