Polymat: knifflige HTACCESS-Aufgabe

Hallo,

ich bin mal gespannt, ob folgendes per .htaccess realisierbar ist.

Und zwar möchte ich eine ganze Reihe von "bestimmten" Unterseiten-Seiten auf ein neues Verzeichnis umleiten. Also nur einen Teil, nicht alle!

/file.php?page=1  nach  /newpath/file.php?page=1
/file.php?page=5  nach  /newpath/file.php?page=5
/file.php?page=12  nach  /newpath/file.php?page=12
/file.php?page=37  nach  /newpath/file.php?page=37
/file.php?page=2507  nach  /newpath/file.php?page=2507

Folgendes funktioniert schonmal nicht, denn die Variablen werden offenbar nicht berücksichtigt:

Redirect /file.php?page=1 http://domain.tld/newpath/file.php?page=1

Außerdem müsste ich dann 2000 Redirect-Zeilen anlegen. Kann man nicht eine Art Array schreiben... mit (1, 5, 12, 37, ...)?

Für eine Lösung wäre ich sehr dankbar.

  1. Hello,

    ich bin mal gespannt, ob folgendes per .htaccess realisierbar ist.

    Und zwar möchte ich eine ganze Reihe von "bestimmten" Unterseiten-Seiten auf ein neues Verzeichnis umleiten. Also nur einen Teil, nicht alle!

    Ich halte den Rewrite-Mode hier für fehl am Platze, da ja nicht das Format umgeschrieben wird, sondern nur ein einziger Parameter seinen Wert ändern soll.

    Da solltest Du dir im Interface eine Funktion erstellen, die dies gleich am Anfang nach der Datenübernahme bewerkstelligt.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  2. Hi!

    Folgendes funktioniert schonmal nicht, denn die Variablen werden offenbar nicht berücksichtigt:
    Redirect /file.php?page=1 http://domain.tld/newpath/file.php?page=1

    Das sind keine Variablen, für den Apachen ist das lediglich der Querystring. Dieser wird von einer RewriteRule nicht berücksichtigt. Mit RewriteCond kannst du darauf zugreifen. Allerdings kenne RewriteRule das Flag QSA (QueryStringAppend), das den Querystring an das Rewrite-Ziel anhängt.

    Außerdem müsste ich dann 2000 Redirect-Zeilen anlegen. Kann man nicht eine Art Array schreiben... mit (1, 5, 12, 37, ...)?

    Also wenn du nur bestimmte Werte berücksichtigen willst, kannst du das nur über viele RewriteConds aussieben. Möglicherweise kannst du das mit RewriteMap eleganter lösen, aber dafür musst du Serveradmin sein.

    Lo!