2015-01-01 50 views
1

我在我的.conf文件中有我爲Jenkins設置的條目。虛擬主機中的apache重定向循環

<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,它會將我發送到重定向循環。我可以使用不存在的URL,例如顯示404頁的/ test,我只想讓我的主頁重定向到/ factory。

我的Apache知識目前大約爲0,所以如果你能像我5這樣解釋,那將是很棒的。我只是試圖讓這個運行起來,並計劃在我不斷學習。

回答

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> 

希望有幫助!