自定义路由返回301/从输入传递变量

时间:2019-01-18 作者:Adam French

我正在尝试注册自定义路由,以验证登录页的groupon凭单代码。我在函数中注册了路由。php类似:

    // Adding Custom Voucher Route 

add_action(\'rest_api_init\',\'register_voucher_endpoint\');

function register_voucher_endpoint() {
    register_rest_route(
        \'voucher\',
        \'verify/(?<voucher_code>)\',
        array(
            \'methods\'=> \'POST\',
            \'callback\'=>\'verify_voucher\'
        ));
}


function verify_voucher($request) {
    return $request[\'voucher_code\']; 
}
我在表单操作上设置了如下链接

<form action="/voucher/verify" method="POST">
                            <h5 class="title">Please enter your 8-character Groupon Voucher Code to redeem your
                                purchase</h5>
                            <p>Note: You will have a voucher code for each product you buy on Groupon. For example,
                                if you bought 2 CBD sprays on Groupon, you\'ll have to enter 2 voucher codes, one
                                for each spray.</p> 
                                <input required="" class="branded-input margin-bottom" type="text"
                                minlength="8" maxlength="8" title="voucher-code" name="voucher-code" placeholder="Enter your 8 Character Groupon code">
                            <input type="submit" value="Redeem My CBD!" class="btn btn-color-primary btn-style-bordered btn-size-large">
当我单击提交按钮或手动转到注册的路由时,它会重定向到主页,网络选项卡显示“验证”路由返回301。站点正在使用重定向,但没有任何选项包括我注册的自定义路由。

两个主要问题:

为什么会发生这种重定向

1 个回复
SO网友:maysi

猜测一下:你的正则表达式\'verify/(?<voucher_code>)\' 不正确。看一看here. 他们正在使用例如。(?P[a-zA-Z0-9-]+) 里面有个P。另一个原因可能是您在验证之前缺少a/。尝试以下操作:


function register_voucher_endpoint() {
    register_rest_route(
        \'voucher\',
        \'/verify/(?P<voucher_code>[a-zA-Z0-9-]+)\',
        array(
            \'methods\'=> \'POST\',
            \'callback\'=>\'verify_voucher\'
        ));
}
[a-zA-Z0-9-] 定义此端点的正则表达式组。

回答问题2:检查全局$_POST 大堆你应该有一个voucher-code 您可以访问的条目$_POST[\'voucher-code\'].我不能百分之百肯定我的答案是正确的。

相关推荐

Redirect htaccess

我需要帮助重定向我的页面。例如,我有网站https://example.com. 我需要将内容从https://example.com 到https://example.com/blog. 这不是问题,我通过更改主页URL来做到这一点。这很有效。但现在我需要添加来自旧的重定向https://example.com 到https://xmpl.com.我想用。htaccess,但这不起作用。你们能帮帮我吗?以下是我对此的一些尝试,但两者都不起作用。RewriteEngine On RewriteRu