我已将谷歌自定义搜索引擎添加到我的网站。我在每个页面的标题中都有一个搜索按钮,并有一个 search.php 来显示结果。
当我使用主页上的搜索按钮输入搜索时,我会被发送到搜索页面,并且结果会完美显示。但是当我从任何其他页面搜索时,我会被重定向到我的 404 页面。
我认为这是因为内部页面 url 搞乱了事情。如果我从内部页面的结果网址中删除“grants/”,那么我将被发送到正确的搜索结果页面。
内页搜索 => http://mywebsite.com/grants/?cx=submit&cof=FORID%3A11&s=alleghany
所以我想我的问题现在变成了......当我从网站的内部页面提交搜索时,如何传递正确的搜索网址?
下面是 header.php 中我的搜索框的代码: (注意:过去我只是简单地复制/粘贴谷歌为您创建的代码,但这次为了保持独特的搜索框样式,我已经通过输入谷歌搜索 ID 以如下方式实现了表单# 进入输入的 value="" 字段。)
<div id="sb-search" class="sb-search">
<script>
(function() {
var cx = '009582834740986793771:waaaw_jsm_w';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
<div style="width:0px;overflow:hidden;height:0px;"> <!-- if you use display:nonw here it doesn't work-->
<gcse:searchbox-only results="http://alleghanyfoundation.ivygroup.com/"></gcse:searchbox-only>
</div>
<form id="searchbox_009582834740986793771:waaaw_jsm_w" action="">
<input value="searchbox_009582834740986793771:waaaw_jsm_w" name="cx" type="hidden"/>
<input value="FORID:11" name="cof" type="hidden"/>
<input class="sb-search-input" placeholder="Search Alleghany..." type="search" name="s" id="s">
<input class="sb-search-submit" type="submit" value="submit" name ="cx">
<span class="sb-icon-search"><i class="fa fa-search"></i> Search</span>
</form>
</div>
由于它在主页 URL 上运行,因此您可以将表单的
action
设置为始终提交到主页。 /
是一个相对 URL,指的是您网站的主页。
<form id="searchbox_009582834740986793771:waaaw_jsm_w" action="/">