Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Apache und mod_rewrite Probleme

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Antworten
gForce1989
Newbie
Newbie
Beiträge: 16
Registriert: 15. Nov 2010, 19:06

Apache und mod_rewrite Probleme

Beitrag von gForce1989 » 25. Nov 2010, 09:49

Ich habe einen Apache-Server laufen. Er ist über http://xx.dyndns.org/ zu erreichen.
Desweiteren läuft das Programm Pyload, welches einen integrierten Webserver mitsich bringt. Diesen kann ich über http://xx.dyndns.org:8000/ erreichen.
Jetzt würde ich ihn aber gern über Port 80 (Apache-Server) erreichbar machen. Sodass er mit http://xx.dyndns.org/pyload/ erreichbar ist.
Dazu verwende ich das Rewrite-Modul. Jedoch funktioniert es nicht korrekt.
Hier der Code:

Code: Alles auswählen

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteLog rewrite.log
RewriteLogLevel 9
RewriteCond %{REQUEST_URI} /pyload/.*
RewriteRule .*/(.*) http://localhost:8000/$1 [P] [L]
RewriteCond %{HTTP_REFERER} http://localhost/pyload.*
RewriteRule .*/(.*) http://localhost/pyload/$1 [R]
RewriteRule ^/pyload/(.*)$ /$1:8000
</IfModule>

Die Webseite wird Falsch dargestellt und die Links funktionieren auch nicht. Sie laufen immer auf einen 404 Fehler hinaus.


Bild


Das wurde zum Teil schon hier behandelt, da ich es ursprünglich mit Squid versuchen wollte. Hatte aber auch nicht so wirklich funktioniert.

MfG

Werbung:
Beppo
Member
Member
Beiträge: 116
Registriert: 4. Jun 2004, 17:39

Re: Apache und mod_rewrite Probleme

Beitrag von Beppo » 25. Nov 2010, 10:43

Hallo,

ich bin mir nicht ganz sicher, aber reicht dir nicht ein

Code: Alles auswählen

RewriteEngine on
RewriteLog rewrite.log
RewriteLogLevel 9
Redirect /pyload/ http://xx.dyndns.org:8000/ 

?

Grüße Beppo

Benutzeravatar
panamajo
Guru
Guru
Beiträge: 2590
Registriert: 12. Feb 2005, 22:45

Re: Apache und mod_rewrite Probleme

Beitrag von panamajo » 25. Nov 2010, 11:32

mod_rewrite funktioniert nur wenn in dem Kontext Änderungen am FileInfo erlaubt sind, das vergisst man gerne und blöderweise findet man in den Logs keinen Hinweis darauf.
Bei openSUSE muss dies explizit erlaubt werden, etwa durch

Code: Alles auswählen

AllowOverride All

gForce1989
Newbie
Newbie
Beiträge: 16
Registriert: 15. Nov 2010, 19:06

Re: Apache und mod_rewrite Probleme

Beitrag von gForce1989 » 25. Nov 2010, 16:44

@Beppo

Somit werde ich auf die Adresse http://xx.dyndns.org:8000/ direkt umgeleitet. Ich möchte aber, dass Apache als Proxy fungiert. Ich kann z.B. von arbeit aus nicht auf den Port 8000 zugreifen. Es ist nur der Port 80 freigegeben.
Es soll auf http://xx.dyndns.org/pyload/ geblieben werden.

@panamajo

Die Anweisung AllowOverride muss in einem Directory stehen. Also habe ich um meine Rewrite-Struktur ein Directory gemacht. Jedoch funktioniert es jetzt überhaupt nicht mehr.

Code: Alles auswählen

RewriteLog rewrite.log
RewriteLogLevel 9
<Directory /pyload/>
<IfModule mod_rewrite.c>
AllowOverride All
RewriteEngine on
RewriteCond %{REQUEST_URI} /pyload/.*
RewriteRule .*/(.*) http://localhost:8000/$1 [P] [L]
RewriteCond %{HTTP_REFERER} http://localhost/pyload.*
RewriteRule .*/(.*) http://localhost/pyload/$1 [R]
RewriteRule ^/pyload/(.*)$ /$1:8000
</IfModule>
</Directory>

Benutzeravatar
panamajo
Guru
Guru
Beiträge: 2590
Registriert: 12. Feb 2005, 22:45

Re: Apache und mod_rewrite Probleme

Beitrag von panamajo » 25. Nov 2010, 17:04

gForce1989 hat geschrieben:Die Anweisung AllowOverride muss in einem Directory stehen. Also habe ich um meine Rewrite-Struktur ein Directory gemacht. Jedoch funktioniert es jetzt überhaupt nicht mehr.

Code: Alles auswählen

<Directory /pyload/>
<IfModule mod_rewrite.c>
AllowOverride All
...
Ich ging davon aus dass die Rewrite Regeln in einer .htaccess Datei stehen. Nur dann ergibt die AllowOverride Direktive Sinn, denn damit definiert man ja welche Einstellungen in .htaccess verwendet werden dürfen.

Wenn du nicht gerade im obersten Verzeichnis des Servers das Verzeichnis /pyload/ hast wundert mich nicht das nichts mehr funktioniert, bei <Directory> muss ein absoluter Pfad (ggf. mit Wildcards) angegeben werden.

Dr. Glastonbury
Advanced Hacker
Advanced Hacker
Beiträge: 1149
Registriert: 20. Aug 2004, 12:27
Wohnort: München
Kontaktdaten:

Re: Apache und mod_rewrite Probleme

Beitrag von Dr. Glastonbury » 25. Nov 2010, 17:44

gForce1989 hat geschrieben:Ich möchte aber, dass Apache als Proxy fungiert.
Dann solltest du dich aber doch eher mit mod_proxy (bzw. mod_proxy_html) auseinander setzen als mit rewrite :???:
Das Leben: hasse oder ignoriere es, lieben kannst du es nicht.

gForce1989
Newbie
Newbie
Beiträge: 16
Registriert: 15. Nov 2010, 19:06

Re: Apache und mod_rewrite Probleme

Beitrag von gForce1989 » 26. Nov 2010, 08:40

Hab es jetzt mit ProxyPass nach langem googlen hinbekommen.

Code: Alles auswählen

ProxyRequests off 
ProxyHTMLExtended On

<Proxy *> 
	Allow from all
</Proxy> 

ProxyPass /pyload/ http://localhost:8000/
ProxyHTMLURLMap http://localhost:8000/pyload/ /pyload/

<Location /pyload/> 
ProxyPassReverse /
SetOutputFilter proxy-html
ProxyHTMLURLMap /	/pyload/
ProxyHTMLURLMap /pyload	/pyload/
RequestHeader unset Accept-Encoding
</Location>
Jedoch gibt es noch ein Problem.
Alle Links, welche mit "/" enden funktionieren. Bei denen, die ohne "/" enden, kommt ein 404 fehler und in der Adresse steht z.B. http://xx.dyndns.org/admin/.
Trage ich jetzt nachträglich pyload nach (http://xx.dyndns.org/pyload/admin/) dann funktioniert es.
Wie kann ich es machen, dass Links ,welche ohne "/" enden, auch umgesetzt wird?
Desweiteren funktionieren Java-Scripts auch nicht.

Dr. Glastonbury
Advanced Hacker
Advanced Hacker
Beiträge: 1149
Registriert: 20. Aug 2004, 12:27
Wohnort: München
Kontaktdaten:

Re: Apache und mod_rewrite Probleme

Beitrag von Dr. Glastonbury » 26. Nov 2010, 14:34

Hi,
ist jetzt zwar eigentlich ein wenig am eigentlichen Problem vorbei, aber wäre es für dich eine Option den proxy-pass als Subdomain einzurichten und dann eben direkt ins / zu gehen, anstatt /pyload.
Also in deinem Fall erstellst du eben einen VHost mit http://pyload.xx.dyndns.org/ und trägst da als Location / ein. Dann musst du keine Links verändern.
Wie gesagt, ist eigentlich nicht deine Frage, aber würde die Sache evtl. vereinfachen ;)
Das Leben: hasse oder ignoriere es, lieben kannst du es nicht.

gForce1989
Newbie
Newbie
Beiträge: 16
Registriert: 15. Nov 2010, 19:06

Re: Apache und mod_rewrite Probleme

Beitrag von gForce1989 » 26. Nov 2010, 16:25

Das funktioniert leider (glaube ich) bei dyndns nicht. Jedenfalls hab ich es noch nicht gefunden, dass man sich subdomaines erstellen könnte.

Dr. Glastonbury
Advanced Hacker
Advanced Hacker
Beiträge: 1149
Registriert: 20. Aug 2004, 12:27
Wohnort: München
Kontaktdaten:

Re: Apache und mod_rewrite Probleme

Beitrag von Dr. Glastonbury » 26. Nov 2010, 21:17

Ah,
ja bin mir nicht ganz sicher, obs immer noch geht, aber wenn du in die dd-client-config noch ein wildcard=yes hinzufügst, dann geht das ;)
Kann aber sein, dass das nur geht, wenn du noch einen alten Account hast; inzwischen ham die ja einiges geändert. Bei mir funktioniert es allerdings definitiv so!
Das Leben: hasse oder ignoriere es, lieben kannst du es nicht.

gForce1989
Newbie
Newbie
Beiträge: 16
Registriert: 15. Nov 2010, 19:06

Re: Apache und mod_rewrite Probleme

Beitrag von gForce1989 » 27. Nov 2010, 23:24

Mit dd-client-config meinst du eine Config-Datei auf meinem Server!?
Ich habe Dyndns in meinem Router konfiguriert.

Bei dyndns gibt es die Option Wildcard. Jedoch steht da, "only for DynDNS Pro users".
Also ist es wohl eher nicht mehr möglich, jedenfalls als free user.

Dr. Glastonbury
Advanced Hacker
Advanced Hacker
Beiträge: 1149
Registriert: 20. Aug 2004, 12:27
Wohnort: München
Kontaktdaten:

Re: Apache und mod_rewrite Probleme

Beitrag von Dr. Glastonbury » 28. Nov 2010, 03:33

gForce1989 hat geschrieben:Bei dyndns gibt es die Option Wildcard. Jedoch steht da, "only for DynDNS Pro users".
Also ist es wohl eher nicht mehr möglich, jedenfalls als free user.
Jo, genau - die ddcleint.config. Aber evtl. geht das eben tatsächlich nicht mehr und ich hab nur einen alten Account noch, wo das eben geht :/
Das Leben: hasse oder ignoriere es, lieben kannst du es nicht.

gForce1989
Newbie
Newbie
Beiträge: 16
Registriert: 15. Nov 2010, 19:06

Re: Apache und mod_rewrite Probleme

Beitrag von gForce1989 » 29. Nov 2010, 09:47

Gänge das mit ner 2. Hostadresse auch?
Sozusagen, dass ich per http://xx2.dyndns.org/ auf nen 2ten Virtuellen Host des Apaches zugreife, der mich dann zu pyload umleitet, und mit http://xx.dyndns.org/ auf dem 1ten?

Dr. Glastonbury
Advanced Hacker
Advanced Hacker
Beiträge: 1149
Registriert: 20. Aug 2004, 12:27
Wohnort: München
Kontaktdaten:

Re: Apache und mod_rewrite Probleme

Beitrag von Dr. Glastonbury » 29. Nov 2010, 13:31

Ja klar,
kannst ja beliebige VHosts in deinem Apache konfigurieren - völlig egal, ob das jetzt Subdomains oder ähnliches ist ;)
Das Leben: hasse oder ignoriere es, lieben kannst du es nicht.

marce
Advanced Hacker
Advanced Hacker
Beiträge: 1189
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: Apache und mod_rewrite Probleme

Beitrag von marce » 29. Nov 2010, 13:43

gForce1989 hat geschrieben:

Code: Alles auswählen

ProxyPass /pyload/ http://localhost:8000/
ProxyHTMLURLMap http://localhost:8000/pyload/ /pyload/
Jedoch gibt es noch ein Problem.
Alle Links, welche mit "/" enden funktionieren. Bei denen, die ohne "/" enden, kommt ein 404 fehler
mach doch einfach mal den / am Ende der URL weg...

JS und anderes macht bei sowas durchaus mal Probleme - lösen lassen sie sich manchmal, es gibt div. Hacks und Optionen, wie man da was machen kann...

gForce1989
Newbie
Newbie
Beiträge: 16
Registriert: 15. Nov 2010, 19:06

Re: Apache und mod_rewrite Probleme

Beitrag von gForce1989 » 4. Dez 2010, 21:44

An welchen stellen meinst du genau?

Antworten