在 Nginx 中,`rewrite` 指令用于将请求的 URI 重写为另一个 URI。您可以使用正则表达式来进行重写。下面是一些关于 Nginx rewrite 正则表达式的常见用法:
1. 简单的重写:
```nginx
rewrite ^/old_path$ /new_path;
```
nginx停止命令这将将 `/old_path` 重写为 `/new_path`。
2. 使用正则表达式进行重写:
```nginx
rewrite ^/somepath/(.*)$ /newpath/$1?query=param;
```
这个重写规则将匹配 `/somepath/任何内容` 的 URI,并将其重写为 `/newpath/任何内容?query=param`。
3. 启用和禁用 URL 重写日志:
```nginx
rewrite log on;
```
这将启用 URL 重写日志,以便您可以查看重写的记录。如果您想禁用日志记录,可以使用 `log off;`。
4. 使用 `last` 和 `break` 指令:
```nginx
rewrite ^/somepath/(.*)$ /newpath/$1?query=param last;
```
使用 `last` 指令将导致 Nginx 停止处理后续的 `rewrite` 指令,并发送请求到新的 URI。如果您使用 `break` 指令,则 Nginx 将停止处理后续的 `rewrite` 和 `try_files` 指令。
5. 使用 `redirect` 指令:
```nginx
rewrite ^/old_path$ /new_path redirect;
```
这将将请求重定向到新的 URI,而不是进行内部重写。这会发送一个临时重定向响应给客户端。如果您想发送一个永久重定向响应,可以使用 `permanent` 指令。
6. 使用 `if` 指令结合正则表达式:
```nginx
if ($request_uri ~* ^/somepath/.*\.html$) {
    rewrite ^/somepath/(.*)$ /newpath/$1 last;
}
```
这个示例中,如果请求的 URI 以 `.html` 结尾并且匹配 `/somepath/` 开头的模式,则将其重写为 `/newpath/` 开头的 URI。
这些是 Nginx rewrite 正则表达式的常见用法示例。根据您的具体需求,您可以使用不同的正则表达式和指令来编写自定义的重写规则。请注意,在配置文件中编写正确的正则表达式是非常重要的,否则可能会导致重写规则不按预期工作或出现错误。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。