alfie: Apache rewrite

Hallo!

Ich möchte eine falschen Link umleiten, und zwar von
http://forum.bebac.at/forum_entry.php?id=3D20
auf
http://forum.bebac.at/forum_entry.php?id=20

Versucht habe ich in der .htaccess im document-root folgendes:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=3D20$
RewriteRule ^forum_entry.php$ forum_entry.php?id=20 [R=301,L]

Ich komme damit aber bei Aufruf des falschen Links immer nur in die Forums-Hauptseite
http://forum.bebac.at/forum.php

Was läuft da schief?

mfg Alfie

  1. Moin!

    Was läuft da schief?

    Überprüfe das mit dem Programm wget. Das gibts dank der genialen Entwickler von OpenSource-Software auch für Windows.

    Benutzung:

    wget -d http://forum.bebac.at/forum_entry.php?id=3D20

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
    1. Hallo!

      Überprüfe das mit dem Programm wget. Das gibts dank der genialen Entwickler von OpenSource-Software auch für Windows.

      Benutzung:

      wget -d http://forum.bebac.at/forum_entry.php?id=3D20

      Wget kenne ich zwar schon lange, aber der debug-mode war mir bisher neu!

      mfg Alfie

    2. Moin!

      Moin!

      Was läuft da schief?

      fastix@trainer:~> wget -d http://forum.bebac.at/forum_entry.php?id=3D20
      --00:00:38--  http://forum.bebac.at/forum_entry.php?id=3D20
                 => `forum_entry.php?id=3D20'
      [...]
      ---request end---
      [...]
      Platz: forum.php[folge]
      [...]
      GET /forum.php HTTP/1.0
      ---request end---
      HTTP Anforderung gesendet, warte auf Antwort... HTTP/1.1 200 OK
      [...]
      Content-Type: text/html

      Hm... hast Du noch mehr Umleitungen?

      Geht es nicht einfacher mit:

      RewriteEngine On
      RewriteRule forum_entry.php?id=3D(.*)$ forum_entry.php?id=$1 [R=301,L]

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
      1. Hallo!

        Hm... hast Du noch mehr Umleitungen?

        Nein. Aber inzwischen bin ich schon etwas schlauer.

        Geht es nicht einfacher mit:

        RewriteEngine On
        RewriteRule forum_entry.php?id=3D(.*)$ forum_entry.php?id=$1 [R=301,L]

        Werde ich versuchen, wenn ich meinen Provider gequält habe.

        Der Webspace ist etwas skuril konfiguriert:

        5 directories
        [cgi-bin]
        [htaccess]
        [hterror]
        [html]
        [htstat]

        Eine .htaccess in [html] oder im Unterverzeichnis [forum]
        führen zu einem 500er-Fehler, also im error-log:
        /home/vhosts/bebac.at/var/www/html/.htaccess: RewriteEngine not allowed here
        /home/vhosts/bebac.at/var/www/html/forum/.htaccess: RewriteEngine not allowed here

        Also habe ich in meiner Naivität angenommen, der Server ist so eingerichtet, dass die .htaccess im Verzeichnis [htaccess] liegen soll.
        Dort ruht sie auch in Frieden - und bewirkt gar nichts - weil vom http-request unberührt ;-)

        Was ich für eine falsch eingerichtete .htaccess gehalten habe (statt ...?id=3D20 wird die Hauptseite angezeigt), ist in Wirklichkeit die Fehlerbehandlung des Forum-Skripts...

        Jedenfalls danke für deine Mühen!

        mfg Alfie

        1. Moin!

          Was ich für eine falsch eingerichtete .htaccess gehalten habe (statt ...?id=3D20 wird die Hauptseite angezeigt), ist in Wirklichkeit die Fehlerbehandlung des Forum-Skripts...

          Aha. Daher die ganzen Cookies...
          Wenn Dein Skript eine Fehlerbehandlung hat, warum suchst Du dann nicht nach "3D" und schmeisst es aus der Variable?

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
          1. Hallo!

            Aha. Daher die ganzen Cookies...
            Wenn Dein Skript eine Fehlerbehandlung hat, warum suchst Du dann nicht nach "3D" und schmeisst es aus der Variable?

            Aus Unvermögen.
            Die Forum-Skripts von meine kleine Homepage übersteigen meine rudimentären PHP-Kenntnisse bei weitem.

            Inzwischen warte ich einmal auf die Antwort meines Providers ;-)

            mfg Alfie

      2. Hallo!

        Nachdem mein Provider seinen Indianer neu frisiert hat, klappt:

        RewriteEngine On
        RewriteBase /
        RewriteCond %{QUERY_STRING} ^id=3D20$
        RewriteRule ^forum_entry.php$ forum_entry.php?id=20 [R=301,L]

        ohne "RewriteBase /" kommt ein 404er.

        Geht es nicht einfacher mit:

        RewriteEngine On
        RewriteRule forum_entry.php?id=3D(.*)$ forum_entry.php?id=$1 [R=301,L]

        Wäre zwar allgemeiner (auch zukünftige "3D"s würden umgeleitet), klappt aber nicht (endet wieder in der Hauptseite).

        mfg Alfie