Hallo!
Nach dem Relaunch einer website gibt es (logischerweise) unheimlich viele 404 Fehler von Leuten die auf noch veraltete Links bei Suchmaschinen klicken.
Meine Idee wäre nun auf der 404 Fehlerseite unter dem Text "Seite nicht gefunden..." ein Suchergebnis von indexed_search mit dem gleichen Suchbegriff der Suchmaschine anzuzeigen.
Beispiel:
Jemand sucht bei Google nach "Hund Mops", findet in den Ergebnissen meine Seite, klickt auf den Link und kommt auf eine 404 Seite (Link gibt es ja nicht mehr - ist noch von der alten Website). Auf dieser 404 Seite soll er nun gleich direkt die Suchergebnisseite von indexed_search mit dem Keyword "Hund Mops" angezeigt bekommen.
Hat sowas schon wer gemacht? Ich habe keine Ext. gefunden die das kann, ich habe auch gegooglet usw.
Mein Lösungsansatz:
In Typoscript kann man mit getenv:HTTP_REFERER die URL von google&Co rausfinden, dann müsste ich irgendwie mit einer Regex o.ä. den "q Parameter" rausfiltern, und an die indexed_search übergeben. Leider habe ich dazu noch keine Idee wie das gehen soll... Weder das filtern, noch das Übergeben an indexed_search :-(
Ich hab es mit Javascript gelöst:
Zuerst habe ich die Macina Searchbox im Inhalt der 404 Seite eingefügt und alle Felder auf hidden geändert, damit sie unsichtbar ist.
Darunter habe ich ein HTML Inhaltselement eingefügt, mit folgendem Inhalt:
<script language="javascript" type="text/javascript">
startpos = 0;
if (document.referrer.indexOf("?q=") != -1) {
startpos = document.referrer.indexOf("?q=") + 3;
}
if (document.referrer.indexOf("&q=") != -1) {
startpos = document.referrer.indexOf("&q=") + 7;
}
if (document.referrer.indexOf("&q=") != -1) {
startpos = document.referrer.indexOf("&q=") + 3;
}
if (startpos > 0) {
string = document.referrer.substring(startpos,10000);
if (string.indexOf("&") != -1) {
endpos = string.indexOf("&");
string = string.substring(0,endpos);
}
document.getElementById('searchfield').value = string;
document.searchform404.submit();
}
</script>
Dann habe ich eine zweite 404 Seite angelegt, in welcher die indexed_search Suchergebnisse angezeigt werden. Oberhalb noch ein bisschen blablatext über die nicht gefundene seite... Dann noch die macina searchbox auf der ersten 404 Seite so konfiguriert, daß sie nicht auf die standardsuchergebnisseite postet, sondern auf die zweite 404 Seite.
Fertig :-)
Hier noch mein Typoscript:
### 404 Searchbox - wird als Inhaltselement bei der ersten 404 Seite eingefügt
plugin.tx_macinasearchbox_pi1 {
pidSearchpage = 257
templateFile = fileadmin/templates/temp_macina404.html
}
### Globale Searchbox auf jeder seite
lib.suche < plugin.tx_macinasearchbox_pi1
lib.suche {
pidSearchpage = 200
templateFile = fileadmin/templates/temp_macina.html
}