Przekazywanie adresu na inny adres


Próbuję proxy adresu IP ze ścieżką. Oto, co zrobiłem;
<VirtualHost 200.0.0.1:80>
ServerAdmin admin@site-address.com
ServerName app.example.com
ServerAlias app.example.com <Proxy *>
Order deny,allow
Allow from all
</Proxy> ProxyPreserveHost On
ProxyPass/[url=http://200.0.0.11:8080/some/path/here/]http://200.0.0.11:8080/some/path/here/[/url]
ProxyPassReverse/[url=http://200.0.0.11:8080/some/path/here/]http://200.0.0.11:8080/some/path/here/[/url] ProxyPass/index.html [url=http://200.0.0.11:8080/some/path/here/index.html]http://200.0.0.11:8080/some/path/here/index.html[/url]
ProxyPassReverse/index.html [url=http://200.0.0.11:8080/some/path/here/index.html</VirtualHost>]http://200.0.0.11:8080/some/pa ... gt%3B[/url]

Chcę, aby użytkownik, który przejdzie do app.example.com, zobaczył

http://200.0.0.11:8080/some/path/here/
http://200.0.0.11:8080/some/path/here/
zawartość bez zmiany adresu URL. Przy tych ustawieniach, gdy użytkownik napisze app.example.com, adres URL zmieni się na app.example.com/some/path/here/, a przeglądarka wyświetli komunikat „Ups, znalazłeś uszkodzony link”.
Co mam winić i jak to naprawić.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Mam taką konfigurację:
<VirtualHost *:80>
ServerName www.c-hack.de
ServerAlias c-hack.de
ProxyPreserveHost on
ProxyPass/[url=http://c-hack01/]http://c-hack01/[/url]
ProxyPassReverse/[url=http://c-hack01/]http://c-hack01/[/url]
</VirtualHost>

Działa jak zegar. Może problem jest
         <proxy *>
część. Ale szczerze mówiąc, nie wiem, co dokładnie tam robisz.
Myślę też tak:
ProxyPass/index.html [url=http://200.0.0.11:8080/some/path/here/index.html]http://200.0.0.11:8080/some/path/here/index.html[/url]
ProxyPassReverse/index.html [url=http://200.0.0.11:8080/some/path/here/index.html]http://200.0.0.11:8080/some/path/here/index.html[/url]

Nie jest potrzebny, ponieważ jest zawarty w pierwszym, ponieważ wszystko oczywiście działa rekurencyjnie.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zasadniczo przeglądarka zmieni tylko to, co jest wyświetlane na pasku adresu, jeśli otrzyma odpowiedź przekierowania. Mogło to pochodzić z serwera wewnętrznego. Jeśli wysyłasz żądania dotyczące jednego adresu URL do innego serwera, upewnij się, że poprawnie ustawiłeś również nagłówek hosta, jeśli miejscem docelowym, z którym się łączysz, jest inny organ URI.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zmienić kolejność proxy. Jak zauważono B.
           ProxyPass
dokumentacja
http://httpd.apache.org/docs/2 ... ypass
,

Skonfigurowane reguły ProxyPass i ProxyPassMatch są sprawdzane w kolejności, w jakiej zostały skonfigurowane. Pierwsza pasująca reguła wygrywa. Dlatego generalnie należy sortować sprzeczne reguły ProxyPass, zaczynając od najdłuższych adresów URL. W przeciwnym razie późniejsze reguły dla dłuższych adresów URL zostaną przesłonięte przez wszelkie wcześniejsze reguły, które używają wiodącego podłańcucha adresu URL.

Możesz

również

doceniam decyzję o włączeniu
         ProxyPreserveHost
... To niezwykłe.
Jeśli spróbujesz

byle co

wylądować

właśnie

„jakaś/ścieżka/tutaj/”, to znaczy próbuje odrzucić wszystko, co następuje
         app.example.com/
zwróć uwagę, że domyślnie wszystko, co następuje
         app.example.com/
dołączony do końca
         [url=http://200.0.0.11:8080/some/path/here/]http://200.0.0.11:8080/some/path/here/[/url]
.
Uchwyt

który

sytuacje, których możesz potrzebować
           RewriteRule
dyrektywa
http://httpd.apache.org/docs/2 ... erule
od
           [P] flag
http://httpd.apache.org/docs/2 ... flags
ustawione do przetwarzania proxy.
Zobacz także dokumentację Apache dla

Używanie mod_rewrite dla serwerów proxy
http://httpd.apache.org/docs/2 ... .html
.
Oto punkt wyjścia:
RewriteEngine on
RewriteRule ^index.html$ [url=http://200.0.0.11:8080/some/path/here/index.html]http://200.0.0.11:8080/some/path/here/index.html[/url] [P]
RewriteRule ^(.*)$ [url=http://200.0.0.11:8080/some/path/here/]http://200.0.0.11:8080/some/path/here/[/url] [P]
ProxyPassReverse/[url=http://200.0.0.11:8080/some/path/here/]http://200.0.0.11:8080/some/path/here/[/url]

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się