You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Apache转NGINX后,如何实现指定URL重写?

Nginx重写规则修复方案

你原来的Nginx配置有两个核心问题,导致规则不生效:

  • location = /script/是精确匹配,只会命中/script/这个路径,完全匹配不上/script/example-242这种带后缀的URL
  • rewrite的正则缺少开头的斜杠/,Nginx的请求URI是包含开头斜杠的,正则必须对应上

下面给你两种可用的正确配置:

方案一:直接在server块中添加规则

把这条规则放在你的server配置块里(和location同级):

rewrite ^/script/(.*)-([0-9]+)$ /test/script.php?title=$1&id=$2 last;

方案二:用location前缀匹配

如果需要对/script/开头的请求统一处理,用这个配置:

location ^~ /script/ {
    rewrite ^/script/(.*)-([0-9]+)$ /test/script.php?title=$1&id=$2 last;
}

注意事项

  • 配置修改后,执行nginx -s reload重启Nginx使规则生效
  • 正则里的$1会捕获example,$2捕获242,和你原来Apache的规则效果完全一致

内容的提问来源于stack exchange,提问作者xyba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:35:48