mod_rewrite

Liebe/-r Experte/-in,
ich komme einfach nicht weiter, vielleicht kannst du mir ja helfen.
Ich habe eine mobil Version für eine webseite gebaut und diese in den Ordner „m“ gelegt. Dafür dann eine Subdomain eingerichtet.
m.domain.de

Jetzt habe ich in der htaccess eine Weiterleitung für mobile Endgeräte eingesetzt. Diese funktioniert auch nur werden keine Bilder mehr angezeigt und die links nicht richtig dargestellt.

Also wenn ich das angebe:
RewriteRule [1](http://m.domain%5C.de/%241) [R,L]

werden die Bilder dargestellt, es wird aber nur die Startseite von der domain.de umgeleitet. Nicht wenn ich z.B. google index auf eine Unterseite komme.

Wenn ich das angebe
RewriteRule ^ (.*)http://m.domain.de/$1 [R,L]

werden alle Seiten umgeleitet aber die Bilder nicht gezeigt.
Ich habe alle Bilder mit absolutem Pfad verlinkt.

Hast du irgend eine Ahnung was ich falsch mache?

Liebe Grüße Moni


  1. http://m.domain.de/$1 ↩︎

Ich habe eine mobil Version für eine webseite gebaut und diese
in den Ordner „m“ gelegt. Dafür dann eine Subdomain
eingerichtet.
m.domain.de

Jetzt habe ich in der htaccess eine Weiterleitung für mobile
Endgeräte eingesetzt. Diese funktioniert auch nur werden keine
Bilder mehr angezeigt und die links nicht richtig dargestellt.

Also wenn ich das angebe:
RewriteRule [1](http://m.domain%5C.de/%241) [R,L]
RewriteRule ^ (.*)http://m.domain.de/$1 [R,L]

Hast du irgend eine Ahnung was ich falsch mache?

Da fehlt mindestens ein Parameter! Irgendwo muss das ja umgeleitet werden.

Ich würde das in etwa so machen:

RewriteCond %{HTTP_HOST} m.domain.de [NC]
RewriteRule ^(?!m/)(.*)$ /m/$1 [QSA,NC,L]

Die erste Regel besagt, dass nur die Domain m.domain.de umgeleitet werden soll.
In der zweiten Regel: das ALLE Requests die mit NICHT mit /m/ anfangen nach /m/ umgeleitet werden. (Sonst beißt sich die Schlange selber in den Schwanz!)

Das kann man auf http://www.modrewrite.de (Forum) und auf http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck nachlesen

MfG Michael Engelke


  1. http://m.domain.de/$1 ↩︎

Hallo,

meines Erachtens hilft da nur eine Quellcodeanalyse der angezeigten Webseite. Könnte es sein, dass noch ein " in der Webseite vorhanden ist? Wenn ja, dann ist das der Verursacher. Aber alles andere könnte ich nur sagen, wenn ich den Quellcode sehe …

Schönen Sonntag

Alexander

Hi Alexander, erstmal vielen Dank. Ich habe nirgendwo ein "

Na ja, ich hänge mich ja nicht an den Regeln fest … denn die scheinen ja auf der einen Seite zu funktionieren … aber mir ist der Fehler gerade aufgefallen … zerlegen wir doch einfach mal das Problem …

  • es greift jemand auf die normale Domain zu … (www.domain.de)

  • es ist ein normaler PC -> passt alles ok

  • es ist ein Mobilgerät laut Liste -> weiterleitung auf m.domain.de (soweit ja auch noch korrekt)

  • das Mobilgerät fordert den Quelltext von m.domain.de an -> soweit auch gewollt

  • im Quelltext befinden sich Bildtags (Bildmarkierungen), welche noch geladen werden müssen

  • die Tags haben die URL www.domain.de (oder?)

  • das MOBILgerät sendet eine Anfrage an den Server, das Bild von www.domain.de zu senden

  • der Server sieht, dass es ein Mobilgerät ist und leitet auf m.domain.de weiter

  • diese hat meines Erachtens das Bild nicht …
    Könnte so sein, oder?

Versuch’ sonst einfach mal ein Bild unter dem richtigen Pfad auf m.domain.de anzubieten, wenn es angezeigt hast, habe ich die richtige Idee.

Wie kannst Du das lösen?
Richte Dir eine eigene Subdomain für Bilder ein (z. B. img.domain.de) und verlink auf die Domain mit den Bildern. Schließe die Domain aus dem Rewrite aus …

RewriteCond %{HTTP_HOST} !^img.domain.de$ [OR]
*hier dann Deine RewriteCond*

Schönen Abend

Alexander

Hallo Alexander, vielen Dank für deine Antwort. Ja, du hast alles richtig erklärt. Wenn ich die Bilder im original Pfad angebe, werden sie überhaupt nicht angezeigt auch ohne Weiterleitung nicht. Ich raffe das einfach nicht. Ich möchte jetzt auch für die Grafike nicht extra subdomains anlegen, da es mehrere gibt wie grafiken, bilder_gr,thums u.s.w.

Aber du hast völlig Recht, wenn ich mit einem desktop browser auf die m Version gehe, werden die Bilder angezeigt.
Na ja, ich muss mal sehen wie das hinkriege. Trotzdem vielen Dank.

Gruß Moni

Hallo,

eine Alternative ist sicherlich noch mit „RewriteCond“ und SCRIPT_FILENAME zu arbeiten. Da dann noch einen Regex rein und eventuelle OR-Schachtelungen löst Dein Problem auch :smile:

Schönen Abend

Alexander

PS: Lies Dich mal in die RewriteCond ein :smile:

Lieber Alexander, ich wollte nur Bescheid sagen, dass ich es hingekriegt habe. Du hattest mit allem vällig Recht. Ich musste die Ordner mit den Grafiken und Bilder von der Umleitung ausschließen.
Ich habe nach der Erkennung von dem http_user_agent jetzt folgendes eingefügt:

RewriteCond %{REQUEST_URI} !^/(grafiken|startbilder|bilder)
RewriteRule ^(.*)$ http://m.domain.de/$1 [R,L]

Danke für deine Hilfe und lieben Gruß Moni

Danke für die Blumen :smile: