Setze nur, wenn angegeben

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

Setze nur, wenn angegeben

Beitragvon webdepp » 30.04.2008 12:11

Hi,

Ich würde gerne meine untenstehende htaccess weiter zusammenfassen. Da ich aber je nach Artikelgruppe eine verschiedene Anzahl an in der URL übermittelten Kategorien ("sel_ID_x") habe, das CMS parallel mehrere Domains managt, bei denen sich die URLs unterschiedlich zusammensetzen (mal mit "katalog/"-Prefix, mal ohne) komme ich allerdings nicht weiter.

Ungefähr so sieht meine .htaccess aus:
Code: Alles auswählen
RewriteEngine on

RewriteCond %{HTTP_HOST} ^server1\.net$ [NC]
RewriteRule ^katalog/([0-9]+).+/([0-9]+).+/([0-9]+).+/.+,([0-9]+)\.php$ index.php?id=$4&sel_ID_0=$1&sel_ID_1=$2&sel_ID_2=$3&%{QUERY_STRING} [L]

RewriteCond %{HTTP_HOST} ^server1\.net$ [NC]
RewriteRule ^katalog/([0-9]+).+/([0-9]+).+/.+,([0-9]+)\.php$ index.php?id=$3&sel_ID_0=$1&sel_ID_1=$2&%{QUERY_STRING} [L]

RewriteCond %{HTTP_HOST} ^server1\.net$ [NC]
RewriteRule ^katalog/([0-9]+).+/.+,([0-9]+)\.php$ index.php?id=$2&sel_ID_0=$1&%{QUERY_STRING} [L]

RewriteCond %{HTTP_HOST} ^server1\.net$ [NC]
RewriteRule ^katalog/.+,([0-9]+)\.php$ index.php?id=$1&%{QUERY_STRING} [L]

#------------------------------------------------------------------

RewriteCond %{HTTP_HOST} ^server2\.net$ [NC]
RewriteRule ^([0-9]+).+/([0-9]+).+/([0-9]+).+/.+,([0-9]+)\.php$ index.php?id=$4&sel_ID_0=$1&sel_ID_1=$2&sel_ID_2=$3&%{QUERY_STRING} [L]

RewriteCond %{HTTP_HOST} ^server2\.net$ [NC]
RewriteRule ^([0-9]+).+/([0-9]+).+/.+,([0-9]+)\.php$ index.php?id=$3&sel_ID_0=$1&sel_ID_1=$2&%{QUERY_STRING} [L]

RewriteCond %{HTTP_HOST} ^server2\.net$ [NC]
RewriteRule ^([0-9]+).+/.+,([0-9]+)\.php$ index.php?id=$2&sel_ID_0=$1&%{QUERY_STRING} [L]

RewriteCond %{HTTP_HOST} ^server2\.net$ [NC]
RewriteRule ^.+,([0-9]+)\.php$ index.php?id=$1&%{QUERY_STRING} [L]


Wunschform wäre für jeden Server einen Block á la

Code: Alles auswählen
WENN Server 1
WENN Hauptkategorie angegeben, setze Variable V0
WENN Unterkategorie angegeben, setze Variable V1
WENN UnterUnterkategorie angegeben, setze Variable V2

UMLEITUNG auf zusammengesetze index.php?(WENN V0: echo 'sel_ID_0='.V0&)(WENN V1: echo 'sel_ID_1='.V1&)(WENN V2: echo 'sel_ID_2='.V2&)&%{QUERY_STRING}


Beim rumexperimentieren habe ich allerdings keine Möglichkeit gefunden.
Gibt es überhaupt eine Lösung in dieser Richtung ? Oder wie kann man die Rules besser vereinfachen ?
webdepp
.
.
 
Beiträge: 4
Registriert: 17.03.2008 13:43

Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

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