.htaccess RewriteRule Weiterleitung
fritz85
- browser
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
Hi fritz85!
RewriteRule ^index.php?s=seite1$ /seite1.php
RewriteRule ^index.php?s=seite2$ /seite2.phpDas 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
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
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
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

--
Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>
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