Seite 1 von 1
Umleiten von www.domain.de/verzeichnis/hersteller/modell/
Verfasst: 27.08.2008 00:14
von Termi
Moin,
nach einer Stunde probieren komme ich leider nicht weiter und hoffe auf Tips.
Ich habe eine Datenbank, in der Mobiltelefone stehen. Eine Abfrage könnte dann so aussehen:
www.domain.de/cellphones/nokia/7110/
Dies soll umgeleitet werden zu
www.domain.de/gsmphones.php?brand=nokia&model=7110
Hatte es so probiert:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/cellphones/[A-z]+/[A-z]+/$
RewriteRule ([A-z]+)/([A-z]+)/$ gsmphones.php?brand=$1&model=$2 [R]
Es soll nur das (nicht existierende) Verzeichnis /cellphones/ umgeleitet werden, da ja echte
Unterverzeichnisse existieren, die nicht umgeleitet werden sollen.
Was mache ich falsch und wie mache ich es richtig? Freue mich auf Tips!
Danke,
Termi
Verfasst: 27.08.2008 08:48
von Gumbo
Code: Alles auswählen
RewriteRule ^cellphones/([A-Za-z]+)/([A-Za-z]+)/$ /gsmphones.php?brand=$1&model=$2 [L]
Verfasst: 28.08.2008 00:09
von Termi
Hi Gumbo,
danke für den Tip. Leider funktioniert dies bei mir weder auf dem localhost, noch auf dem eigentlichen Server. Auf beiden läuft ein Apache2 mit PHP5.
Beim Aufruf von
www.skyynet.de/cellphones/Nokia/7110/ bekomme ich nur mein 404er Fehlerdokument
Meine .htaccess sieht so aus:
Code: Alles auswählen
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/cellphones/[A-z]+/[A-z]+/$
RewriteRule ^cellphones/([A-Za-z]+)/([A-Za-z]+)/$ /gsmphones.php?brand=$1&model=$2 [R]
ErrorDocument 401 /error401.php
ErrorDocument 404 /error404.php
Das [R] statt dem [L] verstehe ich so, dass das Redirect sichtbar ist, was ich zu Testzwecken so möchte. Korrekt?
Danke!
Termi
Verfasst: 28.08.2008 10:51
von Gumbo
Welche Zeichen sind denn als Werte erlaubt?
Verfasst: 28.08.2008 17:14
von Termi
Es sind Buchstaben und Zahlen erlaubt. Ich habe den Eindruck, das Rewrite greift gar nicht. Müßte er mir bei [R] nicht den Redirect in der URL Zeile anzeigen?
Nochmal. Aufgerufen werden kann
www.skyynet.de/cellphones/Nokia/7110 oder
www.skyynet.de/cellphones/Siemens/S25
www.skyynet.de/cellphones/Apple/iphone
oder ähnlich Sinnvolles.
Ich wollte mich halt mal mit url rewriting beschäftigen. Sonst könnte ich ja auch ganz krass per 404er Dokument den referer abfragen und dann per header die neue URL schreiben. Wäre aber weder elegant, noch suchmaschinenoptimiert.
Verfasst: 28.08.2008 17:39
von Gumbo
Das Suchmuster muss nur durch Zahlen erweitert werden:
Code: Alles auswählen
RewriteRule ^cellphones/([A-Za-z0-9]+)/([A-Za-z0-9]+)$ /gsmphones.php?brand=$1&model=$2 [L]
Danke, es wird besser
Verfasst: 24.09.2008 16:01
von Termi
Gumbo hat geschrieben:Das Suchmuster muss nur durch Zahlen erweitert werden:
Code: Alles auswählen
RewriteRule ^cellphones/([A-Za-z0-9]+)/([A-Za-z0-9]+)$ /gsmphones.php?brand=$1&model=$2 [L]
Danke! Das bringt mich erstmal weiter. Jetzt passiert was, wenn auch noch nicht ganz das Richtige.
Ich habe das obige Suchmuster aktiviert und muss nun nur noch ein <base href=""> setzen, damit Grafiken & CSS geladen werden.
Ungeachtet der falschen Pfade werden mir aber leider noch nicht die korrekten Variablen übergeben. Also:
in der .htaccess steht:
Code: Alles auswählen
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/cellphones/[A-z0-9]+/[A-z0-9]+/$
RewriteRule ^cellphones/([A-Za-z0-9]+)/([A-Za-z0-9]+)$ /gsmphones.php?brand=$1&model=$2 [L]
Der Aufruf von...
www.skyynet.de/gsmphones.php?brand=Nokia&model=7110
...funktioniert prima
Der Aufruf von...
www.skyynet.de/gsmphones/Nokia/7110
...leider nicht.
Noch eine Idee, was ich übersehen haben könnte?
Danke!
Verfasst: 24.09.2008 20:18
von Gumbo
Das Suchmuster trifft auch nur auf URL-Pfade zu, die mit „/cellphones/“ beginnen.
Verfasst: 25.09.2008 12:36
von Termi
Gumbo hat geschrieben:Das Suchmuster trifft auch nur auf URL-Pfade zu, die mit „/cellphones/“ beginnen.
Stimmt. Hatte ich verwuselt. Ich habe mal den Admin meines Servers gefragt und der hat es wie folgt korrigiert:
Code: Alles auswählen
RewriteCond %{REQUEST_URI} ^/cellphones/([A-z0-9]+)/([A-z0-9]+)/*$
RewriteRule ^cellphones/([A-Za-z0-9]+)/([A-Za-z0-9]+)$ /gsmphones.php?brand=$1&model=$2 [R=301]
RewriteRule ^cellphones/([A-Za-z0-9]+)/([A-Za-z0-9]+)/$ /gsmphones.php?brand=$1&model=$2 [R=301]
Jetzt klappt alles. Danke für alle Hinweise. Wer Infos zu einem Handy sucht, kann das jetzt tun. Sind aktuell über 1500 Geräte drin.
Ach ja, aus gegebenem Anlaß eine kleine Schleichwerbung am Rande. Wenn Ihr einen guten Webhoster sucht, bei dem man mit solchen Problemen nicht bei einem "Hotline" Mäuschen verhungert, sondern per E-Mail und Telefon einen Admin bekommt, der Eure Probleme direkt online behebt, guckt Euch mal
http://www.bytecamp.net an.