訪問者が検索エンジンから来たかどうかに基づいて、訪問者に対して異なる方法でページを表示したいと思います。私は検索エンジンの紹介を検出していると思いますか?また、自分のサイトにアクセスするために使用された検索用語についても知りたいです。
これまでの私の解決策はこれです:
1)一般的な検索エンジンのURL、つまりhttp://www.google.com/search、http://www.bing.com/search、またはhttp://search.yahoo.comを含むHTTPリクエストリファラーでフィルター処理します/探す
2)検索語のリファラーのクエリ文字列パラメーターを解析します(例: "q = search +terms + for + my + website + go + here")
あまり知られていない検索エンジンが欠落しており、各検索エンジンが検索語に対して独自のクエリ文字列パラメータを持っている可能性があるため、これは最も堅牢なソリューションではないと思います。たとえば、GoogleとBingの検索語パラメータはどちらも「q」ですが、Yahooの検索語パラメータは私が知る限り「p」です。そして、+、-などのような特別な演算子はどうですか?
これを行うためのより一般的な方法はありますか?または、より多くの検索エンジンを処理するのに役立つライブラリはありますか?私はTomcatで実行されているJavaを使用していますが、どの言語やサーバー設定からのアイデアも歓迎します。