URL abhängig von Adresse des Aufrufenden manipulieren

Alles, was den Apache betrifft, kann hier besprochen werden.

URL abhängig von Adresse des Aufrufenden manipulieren

Postby Jimini » 29. April 2011 19:05

Hallo,
ich habe ein Problem, zu welchem ich auch nach ausgiebiger Suche in den letzten Tagen bisher noch keine Lösung finden konnte:
Mein Webserver steht in meinem privaten Netz, die Firewall nattet von außen kommende Anfragen auf Port 80 auf seine Adresse, aus meinem Netzwerk heraus rufe ich ihn natürlich über den internen Hostnamen oder die interne IP-Adresse auf. Das funktioniert so weit prima, nur habe ich auf der Kiste jetzt Wordpress aufgesetzt, wo ich in der Konfiguration explizit eine "Arbeitsadresse" angeben muss, über welche das Teil erreichbar ist - mit dem Effekt, dass Wordpress je nach Einstellung entweder nur von außen oder nur aus dem internen Netz erreichbar ist.
Ich bin mir sicher, dass Apache die Möglichkeit mitbringt, URLs in der Form zu manipulieren, dass je nach Adresse des Aufrufs (10.0.0.0/255 oder alles andere als 10.0.0.0/255) die von Wordpress verwendete URL entsprechend umgebogen wird.

Für Hilfestellungen und Tipps wäre ich sehr dankbar.

MfG Jimini

P.S.: ich habe mich mit dem selben Problem auch schon im Wordpress-Forum gemeldet, dort stagniert der Thread allerdings mittlerweile, weswegen ich es nun hier versuche.
Jimini
 
Posts: 9
Joined: 19. March 2009 00:13

Re: URL abhängig von Adresse des Aufrufenden manipulieren

Postby Nobbie » 29. April 2011 21:15

Jimini wrote:Ich bin mir sicher, dass Apache die Möglichkeit mitbringt, URLs in der Form zu manipulieren, dass je nach Adresse des Aufrufs (10.0.0.0/255 oder alles andere als 10.0.0.0/255) die von Wordpress verwendete URL entsprechend umgebogen wird.


Selbst wenn es so wäre - würde ja nichts nutzen, denn wenn Apache nicht erreichbar ist (auf Grund der angegebenen Adresse), dann ist er nicht erreichbar. Da kann Apache auch nichts manipulieren, weil er gar nicht erst dran ist.

Die Lösung ist simpel: hole Dir für den externen Zugriff eine externe Domain (beispielsweise bei www.dyndns.org) und konfiguriere Wordpress entsprechend (als "Adresse" gibst Du keine IP an, sondern die DynDNS Domain, welche Du Dir ausgesucht hast).

Damit ist Wordpress fertig (und endgültig) konfiguriert.

Um Wordpress nun auch intern zu erreichen, definierst Du einfach in den angeschlossenen LAN PCs in der Host-Datei genau die o.g. DynDNS Domain, vergibst dort aber selbst die zugehörige IP, und zwar natürlich genau die LAN IP des Webservers, auf dem Wordpress läuft. Das sieht ungefähr so aus:

10.0.1.22 meinrechner.dyndns.org

Nun ist der Webserver sowohl von außen als auch von innen einheitlich unter dem Namen "meinrechner.dyndns.org" zu erreichen.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: URL abhängig von Adresse des Aufrufenden manipulieren

Postby Jimini » 30. April 2011 06:45

Sorry, ich habe mich evtl. missverständlich ausgedrückt. Der Webserver ist schon von außen erreichbar, auch über eine dyndns-Adresse. Wenn ich jetzt /etc/hosts so abändere, dass auf meinen Rechnern im LAN die dyndns-Adresse mit der IP-Adresse des Webservers verbunden ist, landen alle Anfragen an besagte dyndns-Adresse jedoch nach wie vor bei der Firewall, denn diese Kiste hängt ja am Modem und stellt fürs DNS "meineurl.dyndns.org" dar. Deswegen funktioniert Wordpress auch nach diesem Eingriff nicht - wenn ich es aus dem internen LAN aufrufe, sucht es sein Arbeitsverzeichnis unter meineurl.dyndns.org, was auf den Router bzw.die Firewall weiterleitet, wo aber nichts liegt.
Ich weiß, das klingt jetzt alles ein bisschen verworren, aber ich hoffe,ich habe dich nicht gründlich missverstanden. Mein Problem ist, dass ich halt nicht genau weiß, wo ich ansetzen soll - an der WP-Config, am Apache oder gar an iptables? Bisher schien mir Apache selber als lohnenswertester Ansatz, das Problem zu lösen.

MfG Jimini
Jimini
 
Posts: 9
Joined: 19. March 2009 00:13

Re: URL abhängig von Adresse des Aufrufenden manipulieren

Postby Nobbie » 30. April 2011 12:46

Jimini wrote:Ich weiß, das klingt jetzt alles ein bisschen verworren, aber ich hoffe,ich habe dich nicht gründlich missverstanden.


Ja, hast Du.

Es ist allerdings auch ziemlich verworren, weil Du die Begriffe "Firewall" und "Router" leider grundlegend verwechselst (wie mir jetzt endgültig klar wird - Anfangs war ich unsicher, weil es sowieso so komisch beschrieben war). Eine Firewall leitet nichts weiter und kennt auch kein NAT - das macht Dein Router (der seinerseits u.a. auch über eine Firewall verfügt).

Du hast meinen Rat dahingehend falsch verstanden, als dass Du in der /etc/host für meinrechner.dyndns.org anscheinend die IP des Routers einsetzt - das ist natürlich falsch (ich dachte auch, das hätte ich wirklich absolut unmißverständlich anders beschrieben). Du mußt dort die Adresse des Wordpress Rechners eintragen. Genau die gleiche Adresse, wie im Portforwarding für Port 80 im Router (und nicht "Firewall", wie Du oben andauernd schreibst).

Dann geht der Request aus dem LAN auf meinrechner.dyndns.org (wie gewünscht) ohne Umweg und ohne Router direkt an den Wordpress Rechner. Genau das, was Du willst. Und für die "Außenwelt" bleibt alles beim alten (so wie es jetzt schon ist).

P.S.: Diesen Eintrag in der /etc/host musst Du natürlich AUCH auf dem Wordpress Rechner selbst tätigen! Und in Apache machst Du entsprechend einen LISTEN auf die LAN IP dieses Rechners (also auch wieder genau diese eine IP) und definierst als ServerName meinrechner.dyndns.org - dann ist es "blitzsauber". Ob Du dafür einen VirtualHost anlegst (was ich empfehlen würden, damit Du unabhängig davon noch einen "localhost" anlegen kanns), oder ob Du das als einzigen ServerName definierst, spielt technisch keine Rolle.

P.P.S.: Eigentlich sollte diese Unterscheidung "intern/extern" allerdings nicht von Nöten sein. Prinzipiell müßte Dein Wordpress auch für die Rechner innerhalb Deines LANs über die externe Anbindung meinrechner.dyndns.org erreichbar sein. Es gibt ganz wenige Router, die mit so einem Scenario ein Problem haben und NAT-Anfragen aus dem gleichen Netz nicht richtig weiterleiten. Mit einer FritzBox (beispielsweise) funktioniert das aber einwandfrei.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: URL abhängig von Adresse des Aufrufenden manipulieren

Postby Jimini » 30. April 2011 15:52

Sorry, ich habe die Begriffe deswegen (fälschlicherweise) synonym verwendet, weil bei mir der Router auch als Firewall fungiert, Macht der Gewohnheit quasi.
Mit folgendem Eintrag in/etc/hosts kann ich die Kiste jetzt wie gewünscht auch aus dem internen Netz aufrufen:
Code: Select all
10.0.0.21       meineurl.dyndns.org  meineurl.dyndns.org

(vorher hatte ich den hintersten Eintrag vergessen abzuändern)

Was den Webserver angeht, wäre das Problem also gelöst. Ich hatte nur gehofft, das irgendwie eleganter, sprich über den Router oder Einstellungen im Webserver selber, regeln zu können.
Besten Dank!

MfG Jimini
Last edited by Jimini on 30. April 2011 16:09, edited 1 time in total.
Jimini
 
Posts: 9
Joined: 19. March 2009 00:13

Re: URL abhängig von Adresse des Aufrufenden manipulieren

Postby Altrea » 30. April 2011 16:05

Jimini wrote:
Code: Select all
10.0.0.21       meineurl.dynds.org  meineurl.dyndns.org

(vorher hatte ich den hintersten Eintrag vergessen abzuändern)


Der Grund dafür ist, dass du im mittleren Teil einen Buchstaben vergessen hast. Den mittleren Teil kannst du komplett streichen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: URL abhängig von Adresse des Aufrufenden manipulieren

Postby Jimini » 30. April 2011 16:10

Argh. Danke für den Hinweis, daer Typo scheint wohl dem so langsam aufkommenden Tunnelblick geschuldet zu sein...

MfG Jimini
Jimini
 
Posts: 9
Joined: 19. March 2009 00:13

Re: URL abhängig von Adresse des Aufrufenden manipulieren

Postby Nobbie » 30. April 2011 20:28

Jimini wrote:Ich hatte nur gehofft, das irgendwie eleganter, sprich über den Router oder Einstellungen im Webserver selber, regeln zu können.


Mir geht es da genau anders herum - ich finde diese Lösung nicht nur elegant, sondern auch noch "blitzsauber". Schön und perfekt. Besser und richtiger geht es doch gar nicht mehr.

Dass das Problem nicht am Webserver selbst lösbar ist, war doch eigentlich klar. Das berühmte "Huhn und Ei" Problem - der Webserver ist nicht erreichbar, um die Lösung dort zu implementieren, muss er erreichbar sein, aber dann ist das Problem ja schon gelöst....
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: URL abhängig von Adresse des Aufrufenden manipulieren

Postby Jimini » 23. May 2011 21:03

Ich habe es jetzt so gemacht wie von dir empfohlen, es funktioniert wie gewünscht. Danke für den Hinweis!

MfG Jimini
Jimini
 
Posts: 9
Joined: 19. March 2009 00:13


Return to Apache

Who is online

Users browsing this forum: No registered users and 22 guests