Ankündigung

Einklappen
Keine Ankündigung bisher.

.htacess - RewriteRule einer alten php?id= zieht nicht...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • .htacess - RewriteRule einer alten php?id= zieht nicht...

    Hallo, hier kann mir jemand nach zweistündigem Grübeln helfen.
    Ich versuche gerade meine alten und uralten Links einzufangen und habe offensichtlich ein Brett vor dem Kopf.

    Kurzform:
    Die Zeile
    RewriteRule ^seite_123.htm$ seite_irgendeintext.htm [R=301]
    funktioniert

    Die Zeile
    RewriteRule ^seite.php?id=123$ seite_irgendeintext.htm [R=301]
    funktioniert NICHT.

    (auch nicht mit Maskierung a la
    RewriteRule ^seite\.php\?id\=123$ seite_irgendeintext.htm [R=301] )

    Was übersehe ich?

    Langform:
    Ich habe bisher Links der Art "seite_xxx.htm " verwendet, bin aber nun zu "sprechenden Links" übergegangen a la "seite_sinnvollertext.htm" - das schreibt mir RewriteRule ordnungsgemäß um.
    Wenn ich nun - im selben Verzeichnis, in derselben .htaccess - versuche auch die Uralt-Links der Art "seite.php?id=123" umschreiben zu lassen (egal ob erstmal nach "seite_123.htm" oder "seite_sinnvolertext.htm" erscheint nur ein 404er...

    Ich habe zunächst gedacht, es liegt an fehlenden Maskierungen und habe brav alle "." "?" und "=" maskiert - ich habe inzwischen alle Kombinationen durch, aber immer erscheint der 404er - laut log Datei ist auch gar kein Umschreibeversuch unternommen worden, die alte "seite.php?id=123" wird am Server abgefragt (ich habe testhalber nochmal das alte "seite.php"-Skript hochgeladen - stimmt, es wird aufgerufen.

    Ich kann nur mutmaßen, dass es an dem dusseligen Fragezeichen liegt?
    Am liebsten wäre mir direkt eine universelle Umschreibung a la:

    RewriteRule ^seite.php?id=([a-zA-Z0-9\-]+)$ seite_$1.htm [R=301]

    aber dazu muss ich erst mal "Problem 1" lösen.
    Die übrigen Zeile in der .htaccess
    (RewriteEngine on, RewriteCond %{HTTP_HOST} !^www\.domain\.de$, Options FollowSymLinks) stehen - wie gesagt, andere Rewrites erfolgen auch "ordnungsgemäß"...

    DANKE!!!

  • #2
    Weil das Rewriting nicht so funktioniert. Der Querystring wird von den Rewrite Regeln nicht berücksichtigt (dh. vom Pattern nicht erfasst), man kann ihn höchstens "as-is" weiterreichen => [QSA].

    In aller Regel will man SEO-gerechte Links auf die "alte" Form umschreiben, nicht umgekehrt (macht keinen Sinn):

    /mysite/article/123 => mysite.php?article=123
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Ich verstehe nicht so ganz was du willst bzw. was du bezwecken möchtest. Wie Istegelitz schon geschrieben hat, will man normalerweise die links so umschreiben:
      /mysite/article/123 => mysite.php?article=123
      Edit: gesehen das es ein bisschen älter ist. Hoffe das thema ist immernoch aktuell
      Nützliches:

      Kommentar

      Lädt...
      X