DiamondDog: Problem mit ModRewrite

Hallo Leute,
ich hab ein kleines Problem und zwar Funktioniert bei mir die Umwandlung meiner Dynamischen Links nicht.
So hab ich es versucht:

RewriteEngine On
RewriteRule ^([^/]*).html$ /index.php?site=$1 [L]

Orginal URL ist:
http://www.Seite.de/index.php?site=impressum/index
Rewrite URL sollte sein:
http://www.Seite.de/impressum/index.html

leiderpassiert wenn ich das in die htaccess schriebe einfach nichts.
Weiß da vll jemand Rat?

Getestet hab ich das ganze auch schon so:
RewriteRule ^ http://www.Seite.de [R,L]
dann lande ich auf der genannten Seite.

Hoffe das mir da jemand weiterhelfen kann und schon mal danke an alle.

Mfg Dog

  1. @@DiamondDog:

    nuqneH

    RewriteRule ^([^/]*).html$ /index.php?site=$1 [L]

    Das sucht nach etwas, was von Anfang bis Ende keine '/' enthält. Es sollte nicht verwundern, wenn das nicht matcht.

    Du solltest aber gar kein Rewrite verwenden, sondern RedirectMatch.

    Und verwende bitte nach BCP 32 vorgesehene Beispieldomains.

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    1. @@DiamondDog:

      nuqneH

      RewriteRule ^([^/]*).html$ /index.php?site=$1 [L]

      Das sucht nach etwas, was von Anfang bis Ende keine '/' enthält. Es sollte nicht verwundern, wenn das nicht matcht.

      Du solltest aber gar kein Rewrite verwenden, sondern RedirectMatch.

      Und verwende bitte nach BCP 32 vorgesehene Beispieldomains.

      Qapla'

      Hey,
      also hab jetzt mal veruscht mich langsam ranzutasten:
      RewriteEngine on
      RedirectMatch ^http://www.example.com/index.php?site=impressum/index$ http://www.example.com/impressum/index.html

      das sollte doch normal die Adresse ersetzen, wenn ich mich bei den Beispielen die ich mir durchgelesen habe nicht irre oder? Leider ist dies auch ohne Funktion.
      Aber es ist doch richtig das nur die URL geändert wird oder? Weil diese Seite an sich ja nicht existiert:
      http://www.example.com/impressum/index.html
      Sondern es soll nur der dynamische Link umgewandelt werden, für Suchmaschinen usw..

      Mfg Dog

      1. Hi,

        RewriteEngine on
        RedirectMatch ^http://www.example.com/index.php?site=impressum/index$ http://www.example.com/impressum/index.html

        RewiteEngine On ist für Redirect(Match) nicht erforderlich, das wird von einem ganz anderen Modul gehandhabt.

        das sollte doch normal die Adresse ersetzen, wenn ich mich bei den Beispielen die ich mir durchgelesen habe nicht irre oder?

        Redirect(Match) betrachtet (ebenso wie RewriteRule) nur die Pfad-Komponente des URL, nicht jedoch den Query-String.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Hi,

          RewriteEngine on
          RedirectMatch ^http://www.example.com/index.php?site=impressum/index$ http://www.example.com/impressum/index.html

          RewiteEngine On ist für Redirect(Match) nicht erforderlich, das wird von einem ganz anderen Modul gehandhabt.

          das sollte doch normal die Adresse ersetzen, wenn ich mich bei den Beispielen die ich mir durchgelesen habe nicht irre oder?

          Redirect(Match) betrachtet (ebenso wie RewriteRule) nur die Pfad-Komponente des URL, nicht jedoch den Query-String.

          MfG ChrisB

          Also ich hab jetzt viel gelesen auch viele Beispiele ausprobiert, aber es funktioniert leider nichts was ich mache der Link will sich nicht ändern.

          Hoffe das mir einer da doch noch einen Anstoß geben kann.

          1. Hi,

            RewriteEngine on
            RedirectMatch ^http://www.example.com/index.php?site=impressum/index$ http://www.example.com/impressum/index.html

            RewiteEngine On ist für Redirect(Match) nicht erforderlich, das wird von einem ganz anderen Modul gehandhabt.

            das sollte doch normal die Adresse ersetzen, wenn ich mich bei den Beispielen die ich mir durchgelesen habe nicht irre oder?

            Redirect(Match) betrachtet (ebenso wie RewriteRule) nur die Pfad-Komponente des URL, nicht jedoch den Query-String.

            MfG ChrisB

            Also ich hab jetzt viel gelesen auch viele Beispiele ausprobiert, aber es funktioniert leider nichts was ich mache der Link will sich nicht ändern.

            Hoffe das mir einer da doch noch einen Anstoß geben kann.

            Edit also ich hab rausbekommen das ich so:
            RedirectMatch /index /index2
            das index in index2 ändern kann. Aber nehme ich zb:
            RedirectMatch /impressum /impressum2

            so wird dieses nicht geändert.... ??
            Da weiß ich nicht ganz wo nach ich da suchen muss jetzt.
            Danke schon mal fürs helfen.

            Mfg dog

            1. Om nah hoo pez nyeetz, DiamondDog!

              Danke schon mal fürs helfen.

              Bitte vermeide Vollzitate, sie sind in diesem Forum weder notwendig noch erwünscht, weil sie nur den Lesefluss stören. Zitiere nur das, worauf du dich konkret beziehst.

              Matthias

              --
              Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Wal und Waldsterben.

              1. Bitte vermeide Vollzitate, sie sind in diesem Forum weder notwendig noch erwünscht, weil sie nur den Lesefluss stören. Zitiere nur das, worauf du dich konkret beziehst.

                Ok werde ich absofort vermeiden.

                Also ich bin jetzt schon etwas weiter und zwar sieht es momentan so aus:
                RewriteCond %{QUERY_STRING} ^site=(.*)$
                RewriteRule ^(.*) /%1.html? [L,R=301]

                Jetzt wird aus
                http://www.example.com/index.php?site=impressum/index
                das hier:
                http://www.example.com/impressum/index.html

                Das Porblem bei dem ganzen ist, das diese Seite ja nicht existiert und ich somit nen 404 Error bekomme. Ja ich weiß ich arbeite mit ner RewriteRule aber bei RedirectMatch bin ich nicht wirklich weiter gekommen.

                Mfg Dog

                1. Hallo,

                  RewriteCond %{QUERY_STRING} ^site=(.*)$

                  RewriteRule ^(.*) /%1.html? [L,R=301]

                    
                  du verblüffst mich. Wolltest du nicht genau das Gegenteil erreichen, also den von extern ankommenden Request nach /impressum/index.html auf die interne URL /index.php?site=impressum/index abbilden?  
                  Deine oben zitierte RewriteRule erwartet aber irgendeinen beliebigen Request mit einem URL-Parameter 'site', und leitet den intern auf /impressum/index.html um. Wenn das nicht existiert, gibt's einen 404, klar.  
                    
                  
                  > Ja ich weiß ich arbeite mit ner RewriteRule  
                    
                  Genau, und warum?  
                    
                  
                  > aber bei RedirectMatch bin ich nicht wirklich weiter gekommen.  
                    
                  Deine Beschreibung ist auch leider ungenügend. Du wirfst immer nur ein Bröckchen hin, aus dem man unmöglich nachvollziehen kann, was du gemacht hast und was tatsächlich das Problem dabei war.  
                    
                  "Ich wollte einen Kuchen backen. Mehl hatte ich auch schon. Hat aber nicht funktioniert."  
                    
                  So etwa wirkt deine Darstellung auf mich.  
                    
                  Ciao,  
                   Martin  
                  
                  -- 
                  Chef:         Zum vierten Mal in dieser Woche erwische ich Sie nun schon beim Zuspätkommen. Was haben Sie dazu zu sagen?  
                  Angestellter: Dann muss heute Donnerstag sein.  
                  Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(