Zum Inhalt springen

Probleme mit userFunc

Erstellt am 9. Januar 2012 · 24 Antworten · letzte Antwort am 18. Januar 2012 · Seite 2 von 2

Tags: Frage

Chrissli ·

Blöde Frage:
Tritt die Loop immer auf oder nur wenn die auf mobile.html weitergeleitet wird d.h. deine
userFunc greift?

Wenn dass der Fall ist, könnte das Problem evtl. an einer Rewrite-Regel liegen, die im Zusammenhang
mit realurl in der HTACCESS steht.

TheFreeman ·

Hi Chrissli,

TheFreeman schrieb

Habe doch meine eigene userFunc schon lange entfernt und mir, wie weiter oben beschrieben, die EXT cwmobileredirect installiert, die das selbe machen soll. Aber auch da ist ein Loop. Trotz der erfolglosen Prüfungen. #angry#

...und ja, der Loop tritt immer nur bei der Weiterleitung auf die mobile.html auf.

Chrissli ·

Ich hab' das mal ausprobiert,

wenn ich mittels Plugin den Browser als iPhone ausgebe, tritt die Loop bei mir auch auf.
Ich habe den Browser testweise so eingestellt, das eine Warnung ausgegeben wird, wenn eine
Webseite versucht mich umzuleiten. Das funktioniert z.B. bei Javascript und PHP wenn mittels "Location"
die URL gewechselt werden soll. In diesem Fall würde der Browser erst nach Bestätigung der Weiterleitung folgen.
In diesem Fall kommt aber kein Hinweis, was im Normalfall bedeutet, das die Webseite schon weiterleitet, bevor
die Browser Seiteninhalte lädt.

Ich vermute daher, dass du eine fehlerhafte Angabe in deiner .htaccess-Datei hast.
Soweit ich das nämlich sehen kann, werden mobile Geräte auf "mobile.html/" weitergeleitet. Wenn ich das
im Browser normal aufrufe werde ich auch wieder auf die Home-Seite verwiesen. Ich behaupte mal, dass du nur
den "/" am Ende entfernen müsstest, damit es wieder funktioniert. Zumindest sehe ich die mobile.html wenn ich die mobile.html
ohne Slash am Ende auf meinem iPod aufrufe, während ich in die Schleife falle, wenn der Slash am Ende steht.

TheFreeman ·

Danke für den Test. :-)

Also bei mir (Android) ist das egal, ob ich den Slash angebe, oder nicht.
Wenn ich die mobile.html direkt aufrufe, dann wird diese auch angezeigt.
Klicke ich da aber auf einen Menüpunkt, dann bin ich wieder im Loop unterwegs.#angry#

Die .htaccess beinhaltet nichts besonderes. Nur die Standard-Einträge für realURL:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]
RewriteRule ^(typo3|t3lib|tslib|fileadmin|typo3conf|typo3temp|uploads|showpic\.php|favicon\.ico)/ - [L]
RewriteRule ^typo3$ typo3/index_re.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]

Anscheinend wird vor der Ausgabe der Inhalte schon umgeleitet.
Da stimme ich Dir zu. Das macht auch Sinn, um die Ladezeit zu verkürzen.
Doch eigentlich darf er ja nicht mehr zurückleiten. Macht er aber.#paralyzed#

Chrissli ·

Ich vermute mal, das dein Android den Slash am Ende bei der manuellen Eingabe als Tippfehler interpretiert und ignoriert, während andere Smartphones das nicht tun.
Durch den Slash am Ende den der Webserver du willst auf ein Verzeichnis zugreifen, dass es natürlich nicht gibt.
Damit zieht die Rewrite Rule

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]

und leitet auf index.php um. Diese wiederum erkennt das Smartphone und startet den Redirect auf mobile.html/ und schon hast du eine Loop.
Ich an deiner Stelle würde einfach mal den Slash entfernen und sehen was passiert.

...
Evtl. kannst du auch manuell der Typo-Seite, die den Inhalt von mobile.html beinhaltet, in den Seiteneinstellungen sagen, dass sie durch realUrl auf mobile/ reagieren soll, du also auf das .html verzichtest. Oder handelt es sich hier tatsächlich um eine HTML-Seite? Würde aber wirklich zuerst den Slash entfernen.

TheFreeman ·

Hi CHrissi,

das hört sich schon plausibel an.
Aber wo soll ich den Slash entfernen? in der Baseurl der Mobile-Seite? :o

TheFreeman ·

OK, also, wie so oft ist die Lösung ganz einfach:

Man setze folgenden Flasg in der realURL auf Null:

'defaultToHTMLsuffixOnPrev' => 0,

... trage dann statt www.meineDomain.de/mobile.html in die Konfig
der Extension cwmobileredirect die URL www.meineDomain.de/mobile/
ein

...und freue sich dann auf ein gutes Ergebnis :-)

Danke viel Mals für Eure Hilfe. 8-)