我想问一下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 /之后是订单号,它是一个变量。
提前致谢。
答案 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
,并再次传递重写的请求以查找适当的位置。