Google 自定义搜索引擎仅适用于主页

问题描述 投票:0回答:1

我已将谷歌自定义搜索引擎添加到我的网站。我在每个页面的标题中都有一个搜索按钮,并有一个 search.php 来显示结果。

当我使用主页上的搜索按钮输入搜索时,我会被发送到搜索页面,并且结果会完美显示。但是当我从任何其他页面搜索时,我会被重定向到我的 404 页面。

我认为这是因为内部页面 url 搞乱了事情。如果我从内部页面的结果网址中删除“grants/”,那么我将被发送到正确的搜索结果页面。

首页搜索 => http://mywebsite.com/?cx=searchbox_009582834740986793771%3Awaaaw_jsm_w&cof=FORID%3A11&s=alleghany&cx=submit

内页搜索 => 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>
php html google-search google-custom-search
1个回答
0
投票

由于它在主页 URL 上运行,因此您可以将表单的

action
设置为始终提交到主页。
/
是一个相对 URL,指的是您网站的主页。

<form id="searchbox_009582834740986793771:waaaw_jsm_w" action="/">
© www.soinside.com 2019 - 2024. All rights reserved.