ubuntuusers.de

Apache RewriteRule: Problem mit Proxy-Flag [P]

Status: Ungelöst | Ubuntu-Version: Ubuntu 17.04 (Zesty Zapus)
Antworten |

BlackListMe

Anmeldungsdatum:
5. Oktober 2015

Beiträge: 21

Hi,

ich versuche mit Apache eine Adresse zu redirecten:

von

1
 sub.domain.tld:8080/foo

zu

1
sub1.domain.tld

Meine /etc/apache2/sites-available/foo.conf sieh so aus:

1
2
3
4
5
6
7
8
<VirtualHost *:80>
    ServerName sub1.domain.tld

RewriteEngine   on
RewriteRule     ^(.*)$ http://sub.domain.tld:8080/foo/$1 [L,R]
ErrorLog       /var/log/apache2/foo.log
Loglevel        info
</VirtualHost>

Funktioniert auch! Allerdings wird die Adresse im Browser nicht umgeschrieben - es steht also die Originaladresse in der Leiste (sub.domain.tld:8080/foo) Also habe ich es mit dem Proxy-Falg versucht [P]

1
 RewriteRule     ^(.*)$ http://sub.domain.tld:8080/foo/$1 [P]

Wenn ich jetzt die Seite aufrufe, wird zwar die Adresse im Browser beibehalten (sub1.domain.tld) allerdings ist die Darstellung jetzt so, als würde css nicht funktionieren - also plain text, ohne irgendwas:

Woran liegt das? Hat jemand eine Idee?

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Du machst ja auch einen Rewrite, und keinen Redirect. Richtig wäre es also so:

<VirtualHost *:80>
    ServerName sub1.domain.tld

    Redirect 302 / http://sub.domain.tld:8000/

    ErrorLog /var/log/apache2/foo.log
    LovLevel info
</VirtualHost>

Wenn es funktioniert, kannst du den Statuscode auch auf 301 umstellen. Beachte, dass implizit auch der Requst-String mit übergeben wird, also ruft man sub1.domain.tld/foo/bar auf, wird man auf sub.domain.tld:8000/foo/bar weitergeleitet. Siehe auch.

BlackListMe

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2015

Beiträge: 21

Hi,

danke für Deine Antwort. Mit Deinem Vorschlag funktioniert zwar die Weiterleitung, aber - wie Du schon beschrieben hast - wird die Original-Adresse im Browser angezeigt (sub.domain.tld:8080/foo). Und eben das möchte ich verhindern. Ich dachte, dafür ist Rewrite genau der Richtige - Oder?

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Achso, das hatte ich falsch verstanden. Ich dachte, du willst, dass die Ziel-Adresse im Browser angezeigt wird. Wenn du den VHost nur als Proxy nutzen willst, dann würde ich es so machen:

<VirtualHost *:80>
  ServerName sub1.domain.tld

  ProxyPass / http://sub.domain.tld:8000/
  ProxyPassReverse / http://sub.domain.tld:8000/

  ...
</VirtualHost>

Dazu musst du ggf. noch das Proxy-Modul aktivieren:

a2enmod proxy proxy_http

Außerdem kann es sein, dass du noch solche Sachen wie ProxyAddHeaders, oder ProxyPreserveHost brauchst, je nachdem, welcher Service sich hinter dem Port 8000 verbirgt.

BlackListMe

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2015

Beiträge: 21

Ja, da war ich auch schon, bin aber nicht zu dem Ziel gekommen, zu dem ich wollte.

Wie beschrieben, ist die Originaladresse

1
http://sub.domain.tld:8080/foo

Wenn ich ProxyPass so konfiguriere, wie Du es vorschlägst, führt der Aufruf über den Browser zum "Fehler / Seite nicht erreichbar"

Mit

1
ProxyAddHeaders on

werde ich zwar mit der richtigem URL im Browser auf die richtige Seite geleitet (yippi), aber wieder mit dieser Oldscooldarstellung: https://drive.google.com/file/d/0B2ED7ooyFyM0Z3VMU3hyd184MEE/view?usp=sharing

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Aha, also ein Confluence dahinter. Da gibts doch eine Anleitung vom Hersteller. Eine Applikation hinter einen Proxy zu hängen ist, wie schon gesagt, nicht immer trivial. Im schlimmsten Fall geht es gar nicht. Bei Confluence musst du es einfach der Applikation beibringen, das sollte also funktionieren.

BlackListMe

(Themenstarter)

Anmeldungsdatum:
5. Oktober 2015

Beiträge: 21

...bei der Anleitung bin ich ebenfalls schon hängen geblieben. Ich probieren das morgen nochmal aus und melde mich.

Danke für die geduldige Hilfe

Cheers

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

BlackListMe schrieb:

...bei der Anleitung bin ich ebenfalls schon hängen geblieben. Ich probieren das morgen nochmal aus und melde mich.

Die Anleitung ist eigentlich gut und vollständig. Wichtig ist, nicht nur copy&paste zu betreiben, sondern sich den Text duchzulesen 😉

Antworten |