Regeln hängen sich gegenseitig auf!

Eines der wichtigsten Anwendungsgebiete von mod_rewrite ist das umschreiben von dynamischen in statische URLs um "suchmaschinenfreundliche URLs" zu erzeugen. Aber was ist besser fürs Ranking? http://www.url.com/12_2.htm, http://www.url.com/url,12,2.htm oder doch lieber http://www.url.com/12/2/url/ Fragen zum URL-Design werden hier diskutiert.

Moderator: Super-Mod

Regeln hängen sich gegenseitig auf!

Beitragvon Ser-Net » 11.01.2009 14:35

Hallo,
ich experimentiere gerade mit modrewrite rum um will folgende URL in diese Umwandeln:

index.php?serie=X&site=Y&subsite=Z -> /X/Y/Z.html

Das Problem ist, dass, dass der Parameter Z fehlen kann (folglich -> /X/Y.html) und, dass auch der Y Parameter fehlen kann (/X.html).
Zudem ist es auch möglich, dass der X Parameter fehlen kann, aber Y und Z existieren KÖNNEN (Y auf jedenfall) also so /Y/X.html oder /Y.html

Ich habe folgendes gebastelt:

Code: Alles auswählen
RewriteRule ^index\.html$ /index.php [L,QSA]

RewriteRule ^([^/]*)\.html$ /index.php?site=$1 [L,QSA]

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?site=$1&subsite=$2 [L,QSA]


RewriteRule ^([^/]*)\.html$ /index.php?serie=$1 [L,QSA]

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?serie=$1&site=$2 [L,QSA]

RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /index.php?serie=$1&site=$2&subsite=$3 [L,QSA]


Das dumme ist, es funktionieren immer nur die ersten drei Regeln. Rufe ich jtzt zum Beispiel eine URL mit serie=X auf, dann funktioniert das nicht. Tausche ich die drei Regeln um, dann funktioniert alles mit dem Parameter serie=X, jedoch nichts ohne dem Parameter.

Ich hoffe ich hab mich deutlich ausgedrückt und, dass ihr mir helfen könnt!


Gruß und Danke

Ser-Net
Ser-Net
.
.
 
Beiträge: 3
Registriert: 11.01.2009 14:27

Beitragvon Gumbo » 11.01.2009 14:57

Du verwendest ja auch dieselben Suchmuster. Wie soll da zwischen beiden unterschieden werden?
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon Ser-Net » 11.01.2009 14:58

Hatte gedacht, dass würde halt dadurch unterschieden werden, weil ja bei den letzten drei ein paramter mehr ist.

Was kann ich da jetzt machen?
Ser-Net
.
.
 
Beiträge: 3
Registriert: 11.01.2009 14:27

Beitragvon Gumbo » 11.01.2009 15:20

Du musst die URLs unterscheidbar machen. Etwa dadurch, dass du unterschiedliche Präfixe verwendest, für die Serien beispielsweise „/serien/…“:
Code: Alles auswählen
RewriteRule ^serien/([^/]*)\.html$ /index.php?serie=$1 [L,QSA]
RewriteRule ^serien/([^/]*)/([^/]*)\.html$ /index.php?serie=$1&site=$2 [L,QSA]
RewriteRule ^serien/([^/]*)/([^/]*)/([^/]*)\.html$ /index.php?serie=$1&site=$2&subsite=$3 [L,QSA]

RewriteRule ^index\.html$ /index.php [L,QSA]
RewriteRule ^([^/]*)\.html$ /index.php?site=$1 [L,QSA]
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?site=$1&subsite=$2 [L,QSA]
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon Ser-Net » 11.01.2009 22:29

Funktioniert einwandfrei! Vielen Dank!
Ser-Net
.
.
 
Beiträge: 3
Registriert: 11.01.2009 14:27


Zurück zu URL-Design

Wer ist online?

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