Zerko: Rewrite für bestimmte URL's

Moin Moin...

Ich möchte die folgende URL's nicht umleiten lassen.
Hierbei habe ich aber das Problem, dass die Werte innerhalb der URL Parameter variabel sind.

Die URL: http://www.meine-domain.de/tinc?key=A123A123&channel=1234567

Meinde Idee war so:
------------------------------------------------------------------------
RewriteCond %{QUERY_STRING} ^key=(.*)&channel=(.*)$
RewriteRule /tinc /tinc?key=$1&channel=$2 [L]

Leider funktioniert dies nicht.
Ideen? Anregungen? Tipps? Lösungsvorschläge? ...sind gerne willkommen.

Gruß,
Zerko

  1. echo $begrüßung;

    Ich möchte die folgende URL's nicht umleiten lassen.
    Hierbei habe ich aber das Problem, dass die Werte innerhalb der URL Parameter variabel sind.
    Die URL: http://www.meine-domain.de/tinc?key=A123A123&channel=1234567

    Ist die Bedingung, dass key und channel vorhanden sein müssen oder soll alles was mit /tinc beginnt umgeleitet werden? Für letzeres sollte eine RewriteRule auf /tinc mit dem QSA-Flag reichen.

    Bitte verwende für Beispiele keine real existierenden dir (vermutlich) nicht gehörende sondern die für Beispiele vorgesehenen Domainnamen.

    echo "$verabschiedung $name";

    1. Richtig!

      Ist die Bedingung, dass key und channel vorhanden sein müssen oder soll alles was mit /tinc beginnt umgeleitet werden? Für letzeres sollte eine RewriteRule auf /tinc mit dem QSA-Flag reichen.

      Die Parameter key und channel müssen in dem Format "tinc?key=(.*)&channel=(.*)" vorhanden sein. Nur die Werte sind hierbei egal.

      Gruß,
      Zerko

      1. echo $begrüßung;

        Ist die Bedingung, dass key und channel vorhanden sein müssen oder soll alles was mit /tinc beginnt umgeleitet werden? Für letzeres sollte eine RewriteRule auf /tinc mit dem QSA-Flag reichen.
        Die Parameter key und channel müssen in dem Format "tinc?key=(.*)&channel=(.*)" vorhanden sein. Nur die Werte sind hierbei egal.

        OK, also zurück auf Anfang. Vergiss meinen obigen Vorschlag, der dürfte generell nicht gehen.

        RewriteCond %{QUERY_STRING} ^key=(.*)&channel=(.*)$
        RewriteRule /tinc /tinc?key=$1&channel=$2 [L]
        Leider funktioniert dies nicht.

        "Funktioniert nicht" hat keine Aussage, auf die man bauen kann.
        Gemäß deiner RewriteRule möchtest du /tinc auf /tinc umschreiben. Das müsste aufgrund der nicht anders möglichen Arbeitsweise von URL-Rewriting auf Verzeichnisebene eine Endlosschleife ergeben. Du hast dort zwar ein [L] stehen, das gilt aber nur für diese Konfigurationsdatei (.htaccess) und für diesen Request. mod_rewrite kann auf Verzeichnisebene jedoch nicht anders, als nach erfolgter Umschreibung einen internen Redirect auf die neue URL zu stellen, und der durchläuft wieder alle Konfigurationsregeln der betroffenen Verzeichnisse. Dieses Problem kann man lösen, indem man das Umschreiben bei real existierenden Dateien und Verzeichnissen per RewriteCond unterbindet. Das unterbindet aber in deinem Fall komplett die Abarbeitung, auch die des ersten Durchlaufs. Wenn ich deine RewriteRule richtig interpretiere, ist es dein Ziel, sicherzustellen, dass die Parameter vorhanden sind, und das lässt sich mit mod_rewrite so nicht lösen.

        echo "$verabschiedung $name";