fritz85: .htaccess RewriteRule Weiterleitung

Hallo zusammen,

ich habe meine Homepage bearbeitet und nun werden noch meine alten Seiten bei Suchmaschinen indexiert.

Nun möchte ich meine .htaccess anpassen doch es gelingt mir nicht.

früher hiess es: index.php?s=seite1
heute heisst es: seite1.php

RewriteRule ^index.php?s=seite1$ /seite1.php
RewriteRule ^index.php?s=seite2$ /seite2.php

Das funktioniert nicht... wenn ich nun das Fragezeichen (Sonderzeichen im modrewrite) auslasse kann ich es aufrufen über index.phps=seite1 - jedoch ist das ja nicht der Sinn.

kennt da jemand eine Lösung??

gruss
fritz85

  1. Hi fritz85!

    RewriteRule ^index.php?s=seite1$ /seite1.php
    RewriteRule ^index.php?s=seite2$ /seite2.php

    Das funktioniert nicht...

    Das Fragezeichen hat in regulären Ausdrücken eine besondere Bedeutung. Du musst es mit einem Backslash () maskieren.

    kennt da jemand eine Lösung??

    Bei umfangreichen Weiterleitungen würde ich eine andere Lösung vorschlagen. Dazu gibt es einen Archivbeitrag: mod_rewrite-Weiterleitung alter Seiten

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hi H☼psel

      Das Fragezeichen hat in regulären Ausdrücken eine besondere Bedeutung. Du musst es mit einem Backslash () maskieren.

      Ich habe das das probiert mit einem Backslash - jedoch erfolglos.

      Bei umfangreichen Weiterleitungen würde ich eine andere Lösung vorschlagen. Dazu gibt es einen Archivbeitrag: mod_rewrite-Weiterleitung alter Seiten

      Also gibt es keine Lösung dies mit .htaccess modrewrite zu lösen?

      Mfg
      fritz85

      1. Hi fritz85!

        Also gibt es keine Lösung dies mit .htaccess modrewrite zu lösen?

        Doch. Ich habe aber bei der Beantwortung deiner Frage wohl geschlafen.

        Der Querystring wird bei der RewriteRule nicht beachtet.
        Richtig wäre also:

        RewriteCond %{QUERY_STRING} ^s=seite1$  
        RewriteRule ^index.php$ /seite1.php
        

        Siehe auch http://forum.de.selfhtml.org/archiv/2009/5/t186436/#m1238246 ff.

        Beachte, dass der Backslash vor "seite1.php" bedeutet, dass diese Datei im obersten Webverzeichnis stehen muss.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Hello,

          Der Querystring wird bei der RewriteRule nicht beachtet.
          Richtig wäre also:

          RewriteCond %{QUERY_STRING} ^s=seite1$

          RewriteRule ^index.php$ /seite1.php

            
          Sollte man der Ordnung halber nicht auch den . escapen?  
            
            RewriteRule ^index\.php$ /seite1.php  
            
            
            
            
            
          Liebe Grüße aus dem schönen Oberharz  
            
            
          Tom vom Berg  
          ![](http://selfhtml.bitworks.de/Virencheck.gif)  
            
          
          -- 
          Nur selber lernen macht schlau  
          <http://bergpost.annerschbarrich.de>
          
        2. Hei H☼psel

          Der Querystring wird bei der RewriteRule nicht beachtet.
          Richtig wäre also:

          RewriteCond %{QUERY_STRING} ^s=seite1$

          RewriteRule ^index.php$ /seite1.php

            
          Super Sache das funktioniert einwandfrei!! Danke!  
            
          Habe nun gerade dies funktioniert:  
            
          RewriteCond %{QUERY\_STRING} ^id=3$  
          RewriteRule ^kontakt/index.php$ http://www.xyz.ch/kontakt.php  
            
          Macht er auch wunderbar jedoch habe ich bei kontakt.php keine fixen URL-s also wenn er weiter klickt bleibt er im Verzeichnis /kontakt/ drin.  
            
          Gruss