basti_p: Header 301 "moved permanently" in HTML

Hallo,

ich habe eine Website neu gestaltet und strukturiert, d.h., die HTML-Dateien liegen jetzt in anderen Verzeichnissen. Wie kann ich in den alten HTML-Dateien jetzt den 301-Verweis unterbringen? Mit PHP wärs via "header(...)" ja kein Problem - aber in reinem HTML?

Danke und Grüße Basti

  1. Moin Moin!

    Gar nicht. Du kannst aber den Server entsprechend konfigurieren. Für den Apache würde man typischerweise mod_rewrite einsetzen. Das kann man direkt in der httpd.conf konfigurieren, teilweise auch über .htaccess-Dateien.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. Gar nicht. Du kannst aber den Server entsprechend konfigurieren. Für den Apache würde man typischerweise mod_rewrite einsetzen. Das kann man direkt in der httpd.conf konfigurieren, teilweise auch über .htaccess-Dateien.

      Für einen einfachen Redirect wäre mod_alias m.E. ausreichend, zumal das Modul anders als mod_rewrite zum Grundumfang des Apachen gehört.

      Siechfred

      --
      Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.
      1. Moin Moin!

        Du hast recht.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    2. Hello,

      Gar nicht. Du kannst aber den Server entsprechend konfigurieren. Für den Apache würde man typischerweise mod_rewrite einsetzen. Das kann man direkt in der httpd.conf konfigurieren, teilweise auch über .htaccess-Dateien.

      Dass _in_ die "Datei" kein Header eingebaut werden kann, ist schon klar,
      aber was ist mit den Metaangaben?

      <meta http-equiv="expires" content="Sat, 01 Dec 2001 00:00:00 GMT">
        <meta http-equiv="refresh" content="5; URL=http://de.selfhtml.org/">

      ist ja z.B. auch möglich und eine "Weiterleitung" kann man dem Browser auch schicken.

      Und soweit ich weiß, werten Suchmaschinen diese Angaben auch immer noch aus und genau darum ging es doch basti.

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

      1. aber was ist mit den Metaangaben?

        Das sollte man m.E. nicht tun, da sie keinen Einfluss auf die HTTP-Statusline haben.

        <meta http-equiv="refresh" content="5; URL=http://de.selfhtml.org/">

        Das generiert zwar eine Weiterleitung, aber der Statuscode ist trotzdem 200 und nicht 3xx.

        Und soweit ich weiß, werten Suchmaschinen diese Angaben auch immer noch aus und genau darum ging es doch basti.

        Ich bin mir nicht sicher, dass dem so ist, wenn man nicht den zur Weiterleitung passenden Statuscode 3xx ausliefert. Ansonsten ist das W3C da sehr deutlich:

        http://www.w3.org/TR/html401/struct/global.html#edef-META:
        „Note. Some user agents support the use of META to refresh the current page after a specified number of seconds, with the option of replacing it by a different URI. Authors should not use this technique to forward users to different pages, as this makes the page inaccessible to some users. Instead, automatic page forwarding should be done using server-side redirects.“

        Siechfred

        --
        Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.
        1. Hello,

          Ich bin mir nicht sicher, dass dem so ist, wenn man nicht den zur Weiterleitung passenden Statuscode 3xx ausliefert. Ansonsten ist das W3C da sehr deutlich:

          http://www.w3.org/TR/html401/struct/global.html#edef-META:
          „Note. Some user agents support the use of META to refresh the current page after a specified number of seconds, with the option of replacing it by a different URI. Authors should not use this technique to forward users to different pages, as this makes the page inaccessible to some users. Instead, automatic page forwarding should be done using server-side redirects.“

          Der Refresh war nur als Beispiel gedacht. *sakra* Muss man denn immer _alles_ doppelt dazuschreiben? :-)

          Ich meinte natürlich, dass man in das Dokument ein Meta-Element mit einem http-equiv für einen Redirect reinnehmen könnte, und zwar nur für den Fall, dass die richtigen[tm] Maßnahmen auf dem Server nicht getroffen werden können/dürfen. Allerdings wüsste ich nicht, wie es formuliert werden müsste, sonst hätte ich es dazugeschreiben.

          Zusätzlich natürlich für den Client dann eine Information und z.B. die automatische Weiterleitung.

          Harzliche Grüße vom Berg
          http://bergpost.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. Seid gegrüßt!

    Mit PHP wärs via "header(...)"

    Richtig!

    ja kein Problem - aber in reinem HTML?

    Das ist unmöglich, da der Header bereits gesendet wurde, sobald das erste "HTML-Bit"  kommt.
    .htaccess wäre noch ne Variante

    --
    Bis Später
    RuD
    ________________________________________________________________
    SelfCode: ie:% fl:( br:^ va:) ls:< fo:| rl:( n4:& ss:) de:> js:| ch:| mo:| zu:)
  3. Hi,

    ich habe eine Website neu gestaltet und strukturiert, d.h., die HTML-Dateien liegen jetzt in anderen Verzeichnissen. Wie kann ich in den alten HTML-Dateien jetzt den 301-Verweis unterbringen? Mit PHP wärs via "header(...)" ja kein Problem - aber in reinem HTML?

    Auf einem Apache-Webserver mittels mod_asis, sofern vorhanden.

    MfG ChrisB

  4. Hallo,

    habe es mit einer .htacces-Datei gelöst - vielen Dank für die Tipps!
    Hier die Syntax - falls jemand danach sucht:

    Redirect 301 /alte_datei.html http://www.example.org/verzeichnis/neue_datei.php

    Grüße Basti