|
|
axelm


: 18.10.2004 : 585 : Hamburg
|
| : 14.07.2005, 01:52 : Skript Frage / Tote URLs abfangen |
|
|
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:
http://www.autolackiererei.de/ort/?ort=Weilm%C3%BCnster |
|
| Nach oben |
|
 |
robo


: 23.12.2003 : 842 : Schwangau
|
| : 14.07.2005, 02:30 : Skript Frage / Tote URLs abfangen |
|
|
Hmmm ... nur eine Idee, keine Ahnung, ob es funktioniert:
header('Location: URL/404.php'); raus
include ('URL/404.php'); rein
cu, Robo  |
|
| Nach oben |
|
 |
Anderl72@work


: 22.03.2005 : 27 : Amsterdam
|
| : 14.07.2005, 08:29 : Skript Frage / Tote URLs abfangen |
|
|
| warum machst du nicht einfach einen rewrite der Umlaute von z.b. "ö" nach "oe" ? |
|
| Nach oben |
|
 |
auftragslinker

: 21.04.2005 : 526
|
| : 14.07.2005, 09:12 : Skript Frage / Tote URLs abfangen |
|
|
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 |
|
| Nach oben |
|
 |
axelm


: 18.10.2004 : 585 : Hamburg
|
| : 14.07.2005, 09:13 : Skript Frage / Tote URLs abfangen |
|
|
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? |
|
| Nach oben |
|
 |
Fridaynite

: 07.01.2004 : 2940 : Recife, Brasil
|
| : 14.07.2005, 09:54 : Skript Frage / Tote URLs abfangen |
|
|
| Code: |
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.
Lebt keusch und trinkt generell nur ein Bier pro Woche maximal. |
|
| Nach oben |
|
 |
robo


: 23.12.2003 : 842 : Schwangau
|
| : 14.07.2005, 09:57 : Re: Skript Frage / Tote URLs abfangen |
|
|
| axelm hat Folgendes 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  |
|
| Nach oben |
|
 |
Pompom


: 10.09.2004 : 3408
|
| : 14.07.2005, 10:13 : Skript Frage / Tote URLs abfangen |
|
|
Probier es mal mit
header("Status: 404 Not Found"); |
|
| Nach oben |
|
 |
Pompom


: 10.09.2004 : 3408
|
| : 14.07.2005, 10:15 : Skript Frage / Tote URLs abfangen |
|
|
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. |
|
| Nach oben |
|
 |
auftragslinker

: 21.04.2005 : 526
|
| : 14.07.2005, 10:40 : Skript Frage / Tote URLs abfangen |
|
|
@pompom: kommt das ned auf den httpd an? soweit ich weiss, funktioniert location: 404 auf manchen servern...
mfg
auftragslinker |
|
| Nach oben |
|
 |
Pompom


: 10.09.2004 : 3408
|
| : 14.07.2005, 10:56 : Skript Frage / Tote URLs abfangen |
|
|
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. |
|
| Nach oben |
|
 |
auftragslinker

: 21.04.2005 : 526
|
| : 14.07.2005, 14:44 : Skript Frage / Tote URLs abfangen |
|
|
pompom: mit server mein ich ja php
die php.ini wird ja schließlich vom apache verarbeitet... |
|
| Nach oben |
|
 |
Pompom


: 10.09.2004 : 3408
|
| : 14.07.2005, 18:50 : Skript Frage / Tote URLs abfangen |
|
|
- 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... |
|
| Nach oben |
|
 |
axelm


: 18.10.2004 : 585 : Hamburg
|
| : 14.07.2005, 21:34 : Skript Frage / Tote URLs abfangen |
|
|
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? |
|
| Nach oben |
|
 |
auftragslinker

: 21.04.2005 : 526
|
| : 15.07.2005, 08:37 : Skript Frage / Tote URLs abfangen |
|
|
@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  |
|
| Nach oben |
|
 |