Php 自定义搜索结果页面抛出404

Php 自定义搜索结果页面抛出404,php,wordpress,Php,Wordpress,我遵循了codex中的链接并创建了以下内容 这是我的searchform.php <form action="/search" method="get" role="search" id="searchform"> <div class="input-group"> <input type="text" name="

我遵循了codex中的链接并创建了以下内容

这是我的searchform.php

<form action="/search" method="get" role="search" id="searchform">
    <div class="input-group">
        <input type="text" name="s" id="search" class="form-control search-bar" placeholder="Search Healthkart Blog" value="<?php the_search_query(); ?>">
        <div class="input-group-append button-icon">
            <button class="btn" type="button" id="searchBtn">
                <img src="<?php echo get_stylesheet_directory_uri(); ?>/assets/images/search-icon.png" alt="search" class="search-icon-white">
                <img src="<?php echo get_stylesheet_directory_uri(); ?>/assets/images/search-icon-grey.png" alt="search" class="search-icon-grey">
            </button>
        </div>
    </div>
</form>
以及JS以这种方式提交表单

$("#searchBtn").click(function(){
    $("#searchform").submit();
})
我还创建了一个名为search.php的自定义搜索结果页面,其中包含正常的搜索页面代码。然后我在wordpress页面中创建了一个名为search(URL为/search)的页面,并为其分配了自定义搜索结果模板

问题是当我提交表单时,它被重定向到/search/?s=test123并返回404页面。但是如果我点击url/search/test123,它就会工作

如何使搜索表单提交到URL/search/test123

如何使搜索表单提交到URL/search/test123

您可以添加:

$("#searchform").on('submit', function(e) {
    e.preventDefault();
    window.location = $("#searchform").attr('action') +'/'+ $("#searchform #search").val();
});
但有了这个解决方案,没有JavaScript的浏览器将无法工作

要修复此问题,可以将以下内容添加到搜索模板中:

if (isset($_GET['s']) && !empty($_GET['s'])) {
    wp_redirect(get_permalink() . $_GET['s'], 301);
    die();
}

反斜杠应该在这里吗
action=“/search”
没有javascript的浏览器是什么意思?我不明白为什么在搜索模板中添加重定向。如果模板被打开,那么它是正确的,我们不需要重定向。您可以在设置中禁用它,默认情况下,TorBrowser将其禁用。一些社会/机构也出于安全原因禁用了它。
if (isset($_GET['s']) && !empty($_GET['s'])) {
    wp_redirect(get_permalink() . $_GET['s'], 301);
    die();
}