使用mod_rewrite搜索字词的Google自定义搜索

时间:2014-02-22 17:44:59

标签: javascript google-custom-search

我在我的网站上使用Google自定义搜索,配置为两页:当表单从第1页发送到第2页时,第2页显示SERP。这是我的第2页:

<script>
  (function() {
    var cx = '00000000000';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//www.google.com/cse/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>
<gcse:searchresults-only queryParameterName="query"></gcse:searchresults-only>
</script>

只要第二页是“经典”/page2.php?query=searchTerm,一切正常。

现在我想使用mod_rewrite切换到友好/ page2 / searchTerm。规则本身已经完成,但我无法理解如何编辑Google脚本以使其理解现在参数是mod_rewritten或如何使用类似gcse.searchTerm ='这就是我要搜索的内容。

不推荐使用API​​ v1,因此我需要坚持使用API​​ v2。

任何帮助?

1 个答案:

答案 0 :(得分:3)

我认为你不需要那个。为什么你想要搜索引擎友好的搜索结果URL?据我所知,搜索引擎优化,您不希望您的搜索结果在Google,Bing等上以结果显示。

在我看来,www.example.com/search?q=test更加友好,而且#34;比www.example.com/page2/test更为明显,因为它更加明显。 (搜索结果页面。)

但是,也许我忽视了一些事情,好的。

可能有更好的方法,但我认为这也应该有效:

<script>
var searchFromURL = function() {
  var element = google.search.cse.element.getElement('searchfromurlgname');
  // you can echo query with PHP or get it from window.location
  element.execute( window.location.pathname.replace('/page2/', '') );
};
var myCallback = function() {
  if (document.readyState == 'complete') {
    searchFromURL();
  } else {
    google.setOnLoadCallback(searchFromURL, true);
  }
};
window.__gcse = {
  callback: myCallback
};
(function() {
  var cx = '013315504628135767172:d6shbtxu-uo';
  // Insert your own Custom Search engine ID here
  var gcse = document.createElement('script'); gcse.type = 'text/javascript';
  gcse.async = true;
  gcse.src = (document.location.protocol == 'https' ? 'https:' : 'http:') +
      '//www.google.com/cse/cse.js?cx=' + cx;
  var s = document.getElementsByTagName('script')[0];
  s.parentNode.insertBefore(gcse, s);
})();
</script>

<gcse:searchbox-only></gcse:searchbox-only>
<gcse:searchresults-only gname="searchfromurlgname"></gcse:searchresults-only>
<!-- switch CSE layout to "two page" -->

https://developers.google.com/custom-search/docs/element#tagparams