Markus: Get-Parameter in Rewrite Rule?

Hallo,

ich würde gern mittels einer htaccess-RewriteRule aus dem URL
http://meinserver.at/forum/index.php?memberid=...

umleiten auf
http://meinserver.at/visitenkarte/...

dabei ist aber wichtig, dass der Redirect nur erfolgt, wenn "memberid" gesetzt ist, alles andere was auf /forum/ kommt, soll unverändert bleiben.

hab schon viel im netz gesucht, finde aber leider nur Beispiele für den umgekehrten Fall, und mit selber stricken war ich bisher leider nicht wirklich erfolgreich...

danke im voraus,
Markus

  1. echo $begrüßung;

    ich würde gern mittels einer htaccess-RewriteRule aus dem URL
    http://meinserver.at/forum/index.php?memberid=...

    umleiten auf
    http://meinserver.at/visitenkarte/...

    dabei ist aber wichtig, dass der Redirect nur erfolgt, wenn "memberid" gesetzt ist, alles andere was auf /forum/ kommt, soll unverändert bleiben.

    Eine RewriteRule interessiert sich nicht für den Query-String. Wenn du den auswerten möchtest benötigst du zusätzlich eine RewriteCond(ition).

    RewriteCond %{QUERY_STRING} regulärer_Ausdruck
      RewriteRule ...

    echo "$verabschiedung $name";

    1. Hallo,

      danke für den Hinweis, hab jetzt als Condition folgendes aufgestellt:

      RewriteCond %{QUERY_STRING}  ^memberid=([0-9]+)$

      wie kann ich jetzt von /forum/index.php?memberid=... auf /visitenkarte/... umleiten?

      hab derweil
      RewriteRule ^forum/index.php$ visitenkarte/user.php?uid=... [L]

      konkret gehts darum, wie ich die memberid unten hinkrieg wo die 3 punkte stehen, irgendwie steh ich grad auf der Leitung seufz

      danke im voraus

      1. echo $begrüßung;

        RewriteCond %{QUERY_STRING}  ^memberid=([0-9]+)$
        RewriteRule ^forum/index.php$ visitenkarte/user.php?uid=... [L]
        konkret gehts darum, wie ich die memberid unten hinkrieg wo die 3 punkte stehen, irgendwie steh ich grad auf der Leitung seufz

        Das müsste mit einer back reference zu machen sein. Für eine back reference zu einer RewriteCond-Zeile nimmt man %N, wobei N die Nummer der Gruppierung ist, also %1 in deinem Fall.

        echo "$verabschiedung $name";

        1. Das müsste mit einer back reference zu machen sein. Für eine back reference zu einer RewriteCond-Zeile nimmt man %N, wobei N die Nummer der Gruppierung ist, also %1 in deinem Fall.

          Spitze, jetzt funktionierts wie ich will - riesendanke für die rasche Unterstützung!

      2. wie kann ich jetzt von /forum/index.php?memberid=... auf
        /visitenkarte/... umleiten?

        hab derweil
        RewriteRule ^forum/index.php$ visitenkarte/user.php?uid=

        was willst du denn nun?
        /visitenkarte/1234
        /visitenkarte/user.php?uid=1234
        oder forum/index.php1234?
        irgendwie verwirrend deine unentschiedenen postings...

        Solltest du nach wie vor das wollen, was du in deinem ersten Posting beschreibst, dann sieht das für mich nach einem recht simplen Fall aus...

        RewriteRule ^visitenkarte/([0-9]*)/?$ forum/index.php?memmberid=$1 [QSA,L]

        Du musst natürlich dein Skript anpassen. Dort wo du jetzt noch einen GET-Request durchführst wirst du ja dann auch auf die neue URL /visitenkarte/1234 verlinken...

        PS: Um regex's zu testen kannst du zB. unter Windows den "regex coach" verwenden, oder aber http://tools.netshiftmedia.com/regexlibrary/