Nginx Redirect for WooCommerce Checkout端点

时间:2016-04-04 19:13:48

标签: nginx configuration woocommerce rewrite endpoint

我想问一下nginx的重写规则是如何将地址末尾的变量目录添加到斜杠中。具体我想解决当我使用WooCommerce与nginx - php-fpm时发生的404错误。 要添加的斜杠位于结帐端点,它看起来像这样

http://xxxx.xx/checkout/xxx?key=wc_order_5702b88b72e77 重写为 http://xxxx.xx/checkout/xxx/?key=wc_order_5702b88b72e77

" xxx"在/ checkout /之后是订单号,它是一个变量。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我想你会想要这样的东西:

server {
    # put this before your locations
    rewrite ^(/checkout/[a-z0-9]+)$ $1/ permanent;
}

我假设订单ID仅包含数字和小写字符。您可能希望通过更改正则表达式来更改此设置。 0-9匹配数字,A-Z大写字符和a-z小写字符。

您还可以将重写放在位置块中以使其更具体。

location ~ ^/checkout/[a-z0-9]+$ {
    rewrite ^(/checkout/[a-z0-9]+)$ $1/ permanent;
}

此外,不是使用永久重定向请求的permanent标志(301重定向),而是使用停止处理当前集的标志last,并再次传递重写的请求以查找适当的位置。