:fragt Max: Interne Suche bei 0 Suchergebnissen weiterleiten auf Google CSE und (GET manipulation)

Hallo,

ich liebe mein CMS allerdings ist die Suche so "la la". Als Brückenlösung soll nun bei 0 Ergenissen die Google CSE genutzt werden. Die Einbindung der CSE ist einfach:

<script>
  (function() {
    var cx = 'CSEID:CSEKEY';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>
<gcse:search></gcse:search>

Das Problem ist das CSE den Querry via GET im Parameter ?q=querry erwartet mein CMS aber den parameter über ?s=querry übernimmt. Ich könnte nun bei 0 Ergebnissen eine Weiterleitung machen auf eine URL bei der dann der Querry via q ausgespielt wird. Das ist allerdings absolut unschön, und ich überlege wie ich den s querry in einen q querry zaubern kann. Kann ich mit Javascirpt vielleicht einen GET q Parameter simullieren?

  1. Hallo :fragt Max,

    Das Problem ist das CSE den Querry via GET im Parameter ?q=querry erwartet mein CMS aber den parameter über ?s=querry übernimmt.
    Ich könnte nun bei 0 Ergebnissen eine Weiterleitung machen auf eine URL bei der dann der Querry via q ausgespielt wird. Das ist allerdings absolut unschön, und ich überlege wie ich den s querry in einen q querry zaubern kann.
    Kann ich mit Javascirpt vielleicht einen GET q Parameter simullieren?

    Query. Simulieren.

    Natürlich geht das. Möglicherweise so.

    href_neu = href_alt.replace(/\?s=/, "?q=");

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
    1. Hallo Matthias,

      wenn ich deine Antwort richtig verstehe würdest du zB. via PHP eine Weiterleitung erstellen? Dann hätten wir das Beispiel: beispiel.de/?s=meine suche wird bei 0 Ergebnissen via PHP 301 oder 302 weitergeleitet auf: beispiel.de/?q=meine suche Das wäre ja die "unschönste" Lösung.

      Oder meinst du ein "replace" in das Google Script einfügen. Darauf hätte ich ja keinen Einfluss da es nachgeladen wird.

      1. Hallo :fragt Max,

        Schau dir mal an, wie man die Beiträge richtig formatieren kann (rotes Fragezeichen über der Texteingabe)

        wenn ich deine Antwort richtig verstehe würdest du zB. via PHP eine Weiterleitung erstellen?

        Nein.

        beispiel.de/?s=meine suche wird bei 0 Ergebnissen via PHP 301 oder 302 weitergeleitet auf:

        Für Beispiele gibt es example.com.

        Oder meinst du ein "replace" in das Google Script einfügen. Darauf hätte ich ja keinen Einfluss da es nachgeladen wird.

        Ich würde per JavaScript den Link zur Suche ändern. Möglicherweise verstehe ich auch nicht so richtig, was du meinst. Kannst du ein konkretes Beispiel verlinken?

        Bis demnächst
        Matthias

        --
        Rosen sind rot.
        1. Problem gelöst es muss <gcse:searchresults-only queryParameterName="s"> eingefügt werden. Gefunden in einer alten Dokumentation https://developers.google.com/custom-search/docs/element