Ist dies Syntaktisch korrekt?

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

Ist dies Syntaktisch korrekt?

Beitragvon mcdbpas » 16.01.2006 01:44

Hallo all,

folgende .htaccess ist bei meinem Shopsystem vorhanden. Gehostet bei 1und1. Leider funktioniert folgender Code nicht:

Code: Alles auswählen
RewriteEngine   on

RewriteRule     admin                      - [L]
RewriteRule     includes                     - [L]

RewriteRule ^s([0-9]+)_index.html$ index.php?shop=$1&%{QUERY_STRING}
RewriteRule ^s([0-9]+)_(.+).html$ index.php?shop_ID=$1&%{QUERY_STRING}

RewriteRule ^kat_(.*).html$ artikel.php?xPD=$1&%{QUERY_STRING}
RewriteRule ^kat_([0-9]+)_([0-9]+).html$ artikel.php?xPD=$1_$2&%{QUERY_STRING}
RewriteRule ^kat_([0-9]+)_([0-9]+)_([0-9]+).html$ artikel.php?xPD=$1_$2_$3&%{QUERY_STRING}


RewriteRule ^([0-9]+)_(.*).html$ p_info.html?products_id=$1&%{QUERY_STRING}

RewriteRule ^buy_(.*)_([0-9]+).html$ artikel.php?xPD=$1action=buy_now&products_id=$2&%{QUERY_STRING}


RewriteRule   ^(.+)\.html(.*)$   $1.php$2   [L]


Könnt Ihr mir sagen was hier falsch ist, danke.
mcdbpas
.
.
 
Beiträge: 4
Registriert: 14.01.2006 11:48

Beitragvon Gumbo » 16.01.2006 09:33

Bei 1&1 gibt es die Besonderheit, dass den Mustern der „RewriteRule“-Direktive bei Einsatz der Zeichenkettenbeginn-Marke ein Schrägstrich vorangestellt werden muss. In deinem Fall bedeutet dies:
Code: Alles auswählen
RewriteEngine   on

RewriteRule     admin      - [L]
RewriteRule     includes   - [L]

RewriteRule     ^/s([0-9]+)_index\.html$                  /index.php?shop=$1                                 [L,QSA]
RewriteRule     ^/s([0-9]+)_(^.+)\.html$                  /index.php?shop_ID=$1                              [L,QSA]

RewriteRule     ^/kat_(.*)\.html$                         /artikel.php?xPD=$1                                [L,QSA]
RewriteRule     ^/kat_([0-9]+)_([0-9]+)\.html$            /artikel.php?xPD=$1_$2                             [L,QSA]
RewriteRule     ^/kat_([0-9]+)_([0-9]+)_([0-9]+)\.html$   /artikel.php?xPD=$1_$2_$3                          [L,QSA]

RewriteRule     ^/([0-9]+)_(.*)\.html$                    /p_info.html?products_id=$1                        [L,QSA]

RewriteRule     ^/buy_(.*)_([0-9]+)\.html$                /artikel.php?xPD=$1action=buy_now&products_id=$2   [L,QSA]
RewriteRule     ^(.+)\.html$                              /$1.php                                            [L]
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon Bob » 16.01.2006 13:56

ist bei meinem Shopsystem vorhanden


Die zweite und dritte "kat_"-Regel wird nie ausgeführt werden können, weil bereits immer die erste matched. Sie sind folglich überflüssig.

dass den Mustern der „RewriteRule“-Direktive bei Einsatz der Zeichenkettenbeginn-Marke ein Schrägstrich vorangestellt werden muss

Nach dem Test auf http://www.modrewrite.de/foren/ftopic1561.html scheinen zu meiner damlaigen Verwunderung davon auch nicht alle Server betroffen zu sein :o
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Funktioniert leider nicht.

Beitragvon mcdbpas » 16.01.2006 16:58

Hallo,

danke für eure Antworten. Leider funktioniert das so nicht.

Index.php zeigt zwar richtige Links an, aber beim klicken kommt der 404 Error.

Laut 1&1 sollte es auf dem Hostingpaket funktionieren. Ich habe vor kurzem die Umstellung auf einen Managed Server vorgenommen, mal sehen ob es nach der Umstellung funktioniert.

Ansonsten melde ich mich noch einmal.
mcdbpas
.
.
 
Beiträge: 4
Registriert: 14.01.2006 11:48


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

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

cron