如何使用 HttpRewriteModule 快速轻松地删除 Nginx 中 URL 的一部分?

如何使用 HttpRewriteModule 快速轻松地删除 Nginx 中 URL 的一部分?

我知道HttpRewrite模块但我真的不知道如何处理正则表达式,我需要将某个目录中的所有 URL 重定向到另一个目录,具体来说:

从:example.com/component/tag/whatever

到:example.com/tag/whatever

有人能告诉我如何在 Nginx 中做到这一点吗?

答案1

你的意思是这样的:

rewrite ^/component(.*)$ $1 last;

答案2

根据定义rewrite指令的位置,有两种方法可以实现它:

A. 在server上下文中

server {
    ...
    rewrite ^/component(.*)$ $1 last;
    ...
}

B. 在location上下文中

location /component {
    rewrite ^/component(.*)$ $1 break;
}

Teo,你为什么将标志last改为break因为,如果将该指令放在上下文中locationlast标志将nginx运行 10 个周期并返回 500 错误。

相关内容