Header 301 "moved permanently" in HTML
basti_p
- html
0 Alexander (HH)0 RuD1 ChrisB0 Gelöst, Danke an alle
basti_p
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
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
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
Moin Moin!
Du hast recht.
Alexander
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
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
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
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
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
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