Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Skript Frage / Tote URLs abfangen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
axelm
PostRank 7
PostRank 7
Beiträge: 603
Registriert: 18.10.2004, 11:42

Beitrag von axelm » 14.07.2005, 01:52

Hi,

ich habe ne Seite wo sich Leute mit Adressen eintragen können.
nach dem Schema index.php?ort=Stadtname

jetzt hat Google aber manche URLs mit Umlauten drin falsch aufgenommen bzw. manchmal lösche ich einen Indexierten Eintrag auch mal wieder. Im moment fängt mein Skript das nicht ab und es wird die Seite ohne Content angezeigt, ich möchte aber dass der Bot ein 404 zurück bekommt wenn zu dem Eintrag nix in der DB drin ist.

Ich habe das mal probiert mit
// if($ort== '')
//{
// header('HTTP/1.1 404 File not found');
// header('Location: URL/404.php');
// exit();
// }

leider kommt da nur ein 302 raus.
Wie muss man es denn richtig machen?
Evtl. 301 senden und zur 404 Weiterleiten? Hält der Bot das dann nicht für eine Linkfarm?

Wer sich das mal genauer anschauen will:
https://www.autolackiererei.de/ort/?ort ... C3%BCnster

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 14.07.2005, 02:30

Hmmm ... nur eine Idee, keine Ahnung, ob es funktioniert:

header('Location: URL/404.php'); raus

include ('URL/404.php'); rein

cu, Robo :)

Anderl72@work
PostRank 1
PostRank 1
Beiträge: 27
Registriert: 22.03.2005, 15:15
Wohnort: Amsterdam

Beitrag von Anderl72@work » 14.07.2005, 08:29

warum machst du nicht einfach einen rewrite der Umlaute von z.b. "ö" nach "oe" ?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 14.07.2005, 09:12

hm..hab mal gelesen, dass header('HTTP/1.1 404 File not found'); nicht immer funzt...
google mal nach header status 404
muss irgendwie
header('Status: 404'); oder so ähnlich heissen

axelm
PostRank 7
PostRank 7
Beiträge: 603
Registriert: 18.10.2004, 11:42

Beitrag von axelm » 14.07.2005, 09:13

Hi Robo

>include ('URL/404.php'); rein
wird zwar die 404 ausgeben aber dem Bot doch kein 404 im Header senden.
Würde also nichts bringen oder?

>warum machst du nicht einfach einen rewrite der Umlaute von z.b. "ö" nach "oe" ?
Ja, löst aber das Problem nicht wirklich. Anderes Beispiel:
Seite.php?Produkt=12345
wenn das Produkt 12345 aus dem Sortiment genommen habe ich das gleiche Problem.

Hat Jemand eine Idee?

Fridaynite
PostRank 10
PostRank 10
Beiträge: 2983
Registriert: 07.01.2004, 09:10

Beitrag von Fridaynite » 14.07.2005, 09:54

Code: Alles auswählen

ErrorDocument 401 /fehler401.html
ErrorDocument 500 /fehler500.html
ErrorDocument 403 /fehler403.html
ErrorDocument 404 /fehler404.html
einfach eine fehler404.html Seite erstellen und den Code oben in die .htaccess

funzt bei mir gut.

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 14.07.2005, 09:57

axelm hat geschrieben:>include ('URL/404.php'); rein
wird zwar die 404 ausgeben aber dem Bot doch kein 404 im Header senden.
Würde also nichts bringen oder?
Doch, die erste Headeranweisung soll ja bleiben bzw. entsprechend dem Vorschlag von auftragslinker geändert werden.

Überprüfen kannst du das dann mit Mozilla und dem Plugin LiveHTTPHeaders oder einem der zahlreichen Header-Online-Tools.

cu, Robo :)

Pompom
PostRank 10
PostRank 10
Beiträge: 3751
Registriert: 10.09.2004, 16:38

Beitrag von Pompom » 14.07.2005, 10:13

Probier es mal mit

header("Status: 404 Not Found");

Pompom
PostRank 10
PostRank 10
Beiträge: 3751
Registriert: 10.09.2004, 16:38

Beitrag von Pompom » 14.07.2005, 10:15

Wenn das nicht hilft, hilft es nicht.
Location: URL ist ein Spezieller Fall, bei dem immer ein Status: 302 an den Browser übermittelt wird, wenn nicht vorher ein 3xx-Status gesendet wurde.

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 14.07.2005, 10:40

@pompom: kommt das ned auf den httpd an? soweit ich weiss, funktioniert location: 404 auf manchen servern...


mfg

auftragslinker

Pompom
PostRank 10
PostRank 10
Beiträge: 3751
Registriert: 10.09.2004, 16:38

Beitrag von Pompom » 14.07.2005, 10:56

wenn das location: 404 mit PHP funktioniert, liegt es nicht am Server, sondern am PHP, da dieses den Errorcode generiert. Vielleicht gibt es da einige buggy Versionen, die dies nicht richtig handhaben.

Ist ja irgendwie eine Logik: Wenn ich auf eine Seite mit Location: weiterleite, ist diese schon irgendwie/irgendwo vorhanden, also im Bereich der 300er Errorcodes anzusiedeln.

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 14.07.2005, 14:44

pompom: mit server mein ich ja php :)
die php.ini wird ja schließlich vom apache verarbeitet...

Pompom
PostRank 10
PostRank 10
Beiträge: 3751
Registriert: 10.09.2004, 16:38

Beitrag von Pompom » 14.07.2005, 18:50

- PHP ist kein Server, genausowenig wie php ein Datenbanksystem ist.

- php wird (meist) als Apache Modul geladen und arbeitet mit dem Apache Webserver in der Art zusammen, dass entsprechende Dokumente (*.php) an den Preprozessor bzw. Interpreter PHP weitergereicht werden und dessen Output (der resultierende HTML-Code) an den Browser weitergereicht wird.

- php ist einfach nur eine Scriptsprache, die mit Hilfe eines Interpreters abgearbeitet wird. Der Interpreter ist meist das vom Apache geladene Modul libphp(x).so.

- php.ini wird nicht vom Apache verarbeitet und ist auch nicht für die Zusammenarbeit mit dem Webserver zuständig, sondern einzig und allein für den PHP-Interpreter.

- Wie bei Scriptsprachen üblich, eignen sich diese für kleine bis mittelgroße Projekte. Bezeichnenderweise heißt ja PHP nix anderes als Personal Home Page Tools.

Sorry, etwas Offtopic...

axelm
PostRank 7
PostRank 7
Beiträge: 603
Registriert: 18.10.2004, 11:42

Beitrag von axelm » 14.07.2005, 21:34

Hi,

also habe jetzt in der PHP Doku gesehen, dass der 404 Header im einen 302 zurückgibt.

Es gibt unterschiedlich Schreibweisen von header("Status: 404 Not Found"); die bringen aber wegen dem 302 alle nichts.

Ich habe mich jetzt für folgende Variante entschieden

if($FooBar == '')
{
header('HTTP/1.1 301 Moved Permanently');
header('Location: URL/404.php');
exit();
}

Da wird halt gesagt, die URL ist verschoben und der Bot landet auf der 404 die selber einen Meta noindex Eintrag enthält.

wget DeadURL -S

Connecting to URL... connected.
HTTP request sent, awaiting response...
1 HTTP/1.1 301 Moved Permanently
2 Date: Thu, 14 Jul 2005 20:27:44 GMT
3 Server: Apache (SuSE/Linux)
4 Location: /404.php
5 Connection: close
6 Content-Type: text/html; charset=iso-8859-1
Location: /404.php [following]
--22:27:51-- /404.php
=> `404.php.3'
Connecting to NewURL... connected.
HTTP request sent, awaiting response...
1 HTTP/1.1 200 OK
2 Date: Thu, 14 Jul 2005 20:27:45 GMT
3 Server: Apache (SuSE/Linux)
4 Connection: close
5 Content-Type: text/html; charset=iso-8859-1

Was meint ihr dazu? Oder verbrenne ich mir damit die Seite?

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 15.07.2005, 08:37

@pompom: verdammt, das brauchst du mir nicht zu erzählen, ich betreue selber genug linux und debian server.
man muss aber nicht immer alles so detailiert ausdrücken, um zu wissen, was der andere damit meint. wenn ich sage server, dann ist damit die server konfiguration gemeint, die eben alles samt apache (der wohl die php.ini liest und damit das modul füttert, weil ein apachemodul bestandteil des apache ist) und andere inis und confs beinhaltet.


mfg

mark



ps: wenn der apache die php.ini nicht liest, dann änder doch mal was und versuch nen php-neustart ;)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag