Weiterleitung in relative Subordner je nach Device

URLs umschreiben, umleiten, blocken oder sperren - all das und noch viel mehr kann mit mod_rewrite erreicht werden. Mit regulären Ausdrücken, Conditions und Rules stehst Du auf Kriegsfuss? mod_rewrite macht nicht das was Du willst, oder funktioniert gar nicht? hier bist Du richtig!

Moderatoren: Bob, Super-Mod

Weiterleitung in relative Subordner je nach Device

Beitragvon Martin1983 » 08.02.2012 18:52

Hallo,

ich hänge an folgendem Problem:

Ich versuche neben einer HTML4 Seite nun auch eine Mobile bzw. eine iPad Seite zu erstellen.
Dafür möchte ich, dass es auf dem Webserver für jedes "Device" einen eigenen Ordner gibt. Einen Ordner "html4", einen Ordner "ipad" und einen Ordner "mobile".
Die zugehörigen Dateien befinden sich in den jeweiligen Ordnern mit jeweis einer index.php als Startseite.

Nun dachte ich mir, dass es einfach möglich ist mittels Rewrite in die jeweiligen Ordner zu wechseln, ohne dass für den "Benutzer" sichtbar ist, in welchem Ordner er sich gerade befindet.
Außerdem möchte ich, dass mit einem Aufruf der Subdomain automatisch in den Index der jeweiligen Seite gesprungen wird.

Diese Redirects habe ich bisher geschrieben bzw. zusammenkopiert:

Code: Alles auswählen
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

#RewriteCond %{REQUEST_URI} ^/ipad [NC]
#RewriteRule ^ipad/(.*)$ / [R=301,L]

#RewriteCond %{REQUEST_URI} ^/html4 [NC]
#RewriteRule ^html4/(.*)$ / [R=301,L]

#RewriteCond %{REQUEST_URI} ^/mobile [NC]
#RewriteRule ^mobile/(.*)$ / [R=301,L]

RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$ [NC]
RewriteCond %{REQUEST_URI} !^/ipad
RewriteRule ^(.*)$ ipad/$1 [L]

RewriteCond %{REQUEST_URI} !^/mobile
RewriteCond %{HTTP_USER_AGENT} android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge\ |maemo|midp|mmp|opera\ m(ob|in)i|palm(\ os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows\ (ce|phone)|xda|xiino [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a\ wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r\ |s\ )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1\ u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(\ i|ip)|hs\-c|ht(c(\-|\ |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(\ |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(\ |\/)|klon|kpt\ |kwc\-|kyo(c|k)|le(no|xi)|lg(\ g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-|\ |o|v)|zz)|mt(50|p1|v\ )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v\ )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|\ )|webc|whit|wi(g\ |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-) [NC]
RewriteRule ^(.*)$ mobile/$1 [L]

RewriteCond %{REQUEST_URI} !^/html4 [NC]
RewriteRule ^(.*)$ html4/$1 [L]


Bin ich am richtigen Weg, oder geht das gar nicht so wie ich es mir denke?

Die ersten 3 Blöcke sollten nur die Adressleiste zurücksetzen, sollte direkt in einen der Ordner gewechselt worden sein. Dann klappen allerdings die anderen Rewrites nicht mehr.
Bei den zweiten 3er Blöcken klappt es, wenn ich statt $1 index.php eingebe, aber ich will ja nicht nur die Indexseite, sondern alle "Requests" und "Files" von diesen Ordnern holen.

Ich bitte um Hinweise, und Links, die mir weiterhelfen könnten.
Martin1983
.
.
 
Beiträge: 2
Registriert: 08.02.2012 18:30

Zurück zu mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste