虚拟主机中的apache重定向循环

时间:2015-01-01 00:06:18

标签: apache redirect

我在我为Jenkins设置的.conf文件中有以下条目。

 <VirtualHost *:80>
            ServerName my.server.com
            Redirect 301 / http://my.server.com/factory
            ProxyPass /factory http://localhost:8080/factory nocanon
            ProxyPassReverse /factory localhost:8080/factory
            ProxyRequests Off
            AllowEncodedSlashes NoDecode
            <Proxy http://localhost:8080/factory*>
                    Order deny,allow
                    Allow from all
            </Proxy>
    </VirtualHost>

我按照预期从my.server.com重定向。但是,如果我放置一个不存在的URL,例如my.server.com/test,它会将我发送到重定向循环。我很好用不存在的网址,例如/ test显示404页面,我只是希望我的主页重定向到/ factory。

我的Apache知识目前约为0,所以如果你能解释像我这样的话会很棒。我只是试图让它运转起来并计划在我去的时候继续学习。

1 个答案:

答案 0 :(得分:0)

First load mod_rewrite in your Apache 并尝试下面的更新配置。

<VirtualHost *:80>
    ServerName my.server.com

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^my\.server\.com$ [NC] # if host is my.server.com
    RewriteCond %{REQUEST_URI} !(^/factory$) [NC]   # and request uri is NOT factory
    RewriteRule ^(.*)$ http://my.server.com/factory [R=301,L] # redirect to url

    ProxyPass /factory http://localhost:8080/factory nocanon
    ProxyPassReverse /factory localhost:8080/factory
    ProxyRequests Off
    AllowEncodedSlashes NoDecode
         <Proxy http://localhost:8080/factory*>
           Order deny,allow
           Allow from all
         </Proxy>
</VirtualHost>

希望有所帮助!