2012-04-05 9 views
0

Ich denke, was ich versuche zu tun ist komplexer als ich ursprünglich dachte. Der erste Teil ist einfach: Ich verwende .htaccess, um mobile Browser auf die "mobile" Version einer Website in einer anderen Domain umzuleiten. Hier ist der Inhalt der .htaccess in der Wurzel des „nicht-mobile“ site:Probleme beim Umleiten von Datenverkehr von einer Domäne zu einer anderen, mit .htaccess in beiden Domänen

RewriteEngine on 
RewriteCond %{HTTP_USER_AGENT} android.+mobile|iphone [NC] 
RewriteRule ^(.*)$ http://m.domain.tld%{REQUEST_URI} [R] 

Der zweite Teil eine gewisse Komplexität hinzufügt. Ich verwende .htaccess auf der mobilen Domäne, um die meisten Anfragen an die index.php im Stammverzeichnis umzuleiten. Hier ist der Inhalt der .htaccess in der Wurzel der mobilen Website:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.+) - [PT,L] 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule ^(.*) index.php 

Wenn eine Anforderung, die die nicht-mobile Website gesendet werden enthält nur den Domain-Namen, das alles funktioniert wie erwartet:

http://www.domain.tld 

wird zu

http://m.domain.tld 

ohne Problem umgeleitet.

Auch, wenn ein mobiler Browser lädt

http://m.domain.tld/abc 

es wie erwartet funktioniert: index.php in der Wurzel der mobilen Domain geladen wird, und es analysiert die Anfrage-URL, und weist den Wert „abc“ zu einer Variablen.

jedoch Dinge brechen seltsam nach unten, wenn ich versuche zu

http://www.domain.tld/abc 

in einem mobilen Browser zu navigieren. Daraus ergibt sich die nicht mobile Datei,

http://www.domain.tld/abc/index.php 

in den Browser geladen wird, formatiert von CSS aus dem mobilen Domain. Die anfängliche Umleitung, die ich ausführen möchte, wird nicht ausgeführt, aber anscheinend werden nachfolgende Anforderungen, wie die für die CSS-Datei , umgeleitet. Beide Domänen sind Vhosts auf demselben Server.

Kann jemand durch, was ich versuche, und eine Lösung anbieten?

Danke, Dave

Antwort

1

dachte ich dies. Das Problem war, dass es keine .htaccess im Verzeichnis/abc auf www.domain.tld gab, um mobile Browser umzuleiten. Ich vermute, dass ich erwartet habe, dass Apache die Tatsache, dass das/abc-Verzeichnis existiert, magisch ignoriert und alle Anfragen über die .htaccess im Root-Verzeichnis des vhosts verarbeitet.

So wurde die Anforderung für http://www.domain.tld/abc nicht umgeleitet. Und die "mobile Formatierung" wurde angewendet, weil, obwohl die Adressleiste "http: // www ..." zeigte, die Anfrage für diese Ressource von "http: // m ..." kam und die CSS-Datei existierte auf der mobilen Domain.

+0

großartig Sie haben Ihr Problem gelöst! Bitte überprüfen Sie später erneut und markieren Sie Ihre Antwort als akzeptiert, so dass jeder weiß, dass Ihre Frage beantwortet wurde. Aufgrund der Richtlinien für Websites müssen Sie möglicherweise bis zu 48 Stunden warten, bevor Sie dazu in der Lage sind. – Marijn

Verwandte Themen