在Nginx配置中,可以通过多种方式截取和处理URI。以下是几种常用的方法:
location ~ ^/users/([^/]+)/profile$ {
set $user_id $1; # 捕获/users/<id>/profile中的<id>
# 现在$user_id变量中存储了截取的部分
}
location /products/ {
rewrite ^/products/([^/]+) /display_product.php?id=$1 last;
# 将/products/123重写为/display_product.php?id=123
}
map $uri $product_id {
~^/products/(?<id>[^/]+) $id;
default "";
}
server {
location /products/ {
# $product_id变量现在包含截取的ID部分
proxy_pass http://backend/$product_id;
}
}
location ~ ^/images/(.*) {
try_files /cache/$1 /originals/$1;
# $1包含/images/之后的部分
}
location /static/ {
alias /var/www/assets/;
# 请求/static/js/app.js会映射到/var/www/assets/js/app.js
}
location /api/ {
set $api_path $request_uri;
# 或者使用$uri获取规范化后的URI
}
location ~ ^/blog/([0-9]{4})/([0-9]{2})/([^/]+)$ {
set $year $1;
set $month $2;
set $slug $3;
# 现在可以分别访问$year, $month和$slug变量
}
以上方法可以根据具体需求组合使用,实现灵活的URI处理和截取功能。