Seite 1 von 1

SQL-Abfrage leer -> Weiterleitung

Verfasst: 08.03.2009, 19:30
von chrisnrw
Hallo zusammen,

ich habe folgendes Problem, meine URL ist wie folgt mit modrewrite aufgebaut:

https://www.meineurl.de/46351/1/Biene_Maja.html

bei dieser URL wir in meiner DB nach "Biene Maja" gesucht,

wenn sich jetzt aber jemand vertippt z.B.:

https://www.meineurl.de/46351/1/Biene_Maaaja.html

wird eine leeres SQL-Ergebniss geliefert, wie kann ich einen
404-Fehler ausgeben und dann eine saubere Weiterleitung auf die
Startseite durchführen ?

Oder habe ich hier einen Denkfehler - ich sehe gerade vor
lauter Bäumen den Wald nicht mehr.

Liebe Grüße
Chris

Verfasst:
von

Verfasst: 08.03.2009, 20:07
von wehwehweh
warum baust du nicht einfach eine sql/php abfrage nach dem schema ein:
wenn abfrage ist nichts
dann 404 bzw. 301

Verfasst: 08.03.2009, 20:22
von net(t)worker
öhm... ist die Zahl, in dem Fall die 46351 fest mit dem suchbegriff verknüpft? wenn ja, wäre ja ggf. anhand dieser Zahl ein 301 auf die richtige url möglich...

Verfasst:
von

Verfasst: 08.03.2009, 20:40
von chrisnrw
Danke für den Tip, ich konnte es jetzt mit
PHP wie folgt lösen:

Code: Alles auswählen

if ($count == 0){
header("HTTP/1.0 404 Not Found");
header("Location: http://www.meineurl.de/");
}
Ich frage mich jetzt nur ob die weiterleitung für Google so in Ordnung ist ?

Als Header wird laut: https://www.seoconsultants.com/tools/headers.asp
folgendes zurrückgegeben:

#1 Server Response: HTTP Status Code: HTTP/1.1 302 Found
#2 Server Response: HTTP Status Code: HTTP/1.1 404 Not Found

Ist die 302-Weiterleitung nicht schlecht für google ?

Verfasst: 08.03.2009, 21:47
von profo
Du mischst einen 404 HTTP-Statuscode ("Nicht gefunden") mit einer 301 bzw. 302 Weiterleitung, das ist technisch nicht definiert.

Du hast folgende Möglichkeiten:

1) Eine 404 ("Nicht gefunden")-Seite anzeigen, am besten mit einem Hilfstext, wo die Inhalte liegen können. Die User müssen dann diesen Hinweisen nachgehen

2) Eine 410 ("Nicht vorhanden")-Seite anzeigen. Damit (und nur mit diesem Statuscode) signalisierst Du den Suchmaschinen, dass sie die URL vergessen sollen.

3) Eine 302-Weiterleitung ("Temporäre Umleitung"). Das wäre in Deinem Fall aber Quatsch, denke ich.

4) Eine 301-Weiterleitung ("Ständige Umleitung"). Damit verlinkst Du auf die Seite, auf der die Inhalte jetzt zu finden sein sollen.

4 finde ich am besten. Am Ende muss dann in etwa so etwas dabei herauskommen:

Code: Alles auswählen

<?php
header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
header&#40;"Location&#58; http&#58;//www.meineurl.de"&#41;;
exit&#40;&#41;;
?>