簡體   English   中英

使用內部服務器重定向的Apache重寫或代理

[英]Apache rewrite or proxy with redirect of internal server

我正在嘗試使用Apache作為內部tomcat服務器的代理,但是tomcat服務器執行的重定向使我發瘋

我首先嘗試通過以下方式嘗試mod_proxy

ProxyPass / ajp://127.0.0.1:8045/bv-via-web/
ProxyPassReverse / ajp://127.0.0.1:8045/bv-via-web/

當訪問/ (根)時,內部服務器執行到/bv-via-web/hola的重定向,該重定向不存在。 它應該重定向到/hola 如何通過Apache配置實現此目標?

作為一種解決方法,我雖然添加了以下內容:

ProxyPass /bv-via-web/ ajp://127.0.0.1:8045/bv-via-web/
ProxyPassReverse /bv-via-web/ ajp://127.0.0.1:8045/bv-via-web/

但這不起作用,因為它將URL擴展到內部請求bv-via-web/bv-via-web/hola 因此,基本上我想更改url,但不知道使用mod_proxy怎么可能。

然后,我嘗試使用以下命令mod_rewrite

RewriteEngine on
RewriteRule ^/bv-via-web/(.*)$ http://127.0.0.1:8040/bv-via-web/$1 [P,L]
RewriteRule ^/(.*)$ http://127.0.0.1:8040/bv-via-web/$1 [P,L]

但是,當我打開網站的根目錄時,它將執行重定向,並且瀏覽器地址中顯示http://127.0.0.1:8040/bv-via-web/hola

我不明白,由於[P]標志,它應該作為內部代理工作。
我究竟做錯了什么 ?

我通過添加解決了它:

ProxyPreserveHost On

如上所述,它不會轉發到127.0.0.1。 因此,總的配置片段為:

RewriteEngine on
RewriteRule ^/bv-via-web/(.*)$ http://127.0.0.1:8040/bv-via-web/$1 [P]
RewriteRule ^/(.*)$ http://127.0.0.1:8040/bv-via-web/$1 [P]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM