nginx伪静态匹配以“/redirect”结尾的路径,然后重定向目标为排除结尾的“/redirect”的路径
时间: 2024-12-02 18:14:09 浏览: 25
在Nginx服务器上配置伪静态(URL rewriting)以处理以"/redirect"结尾的路径,并将它们重定向到不包含"/redirect"的部分,可以使用location指令配合if条件来实现。例如:
```nginx
location /redirect {
# 使用try_files查找实际文件或目录,如果没有找到,则执行下面的rewrite规则
try_files $uri $uri/ =404;
# 如果请求是以"/redirect"结尾,进行重写
if ($request_uri ~ "/redirect$") {
rewrite ^/(.*)/redirect$ /$1 permanent;
# 这里将去掉最后的"/redirect"并永久重定向(301)
}
}
```
在这个例子中,当用户访问像`http://example.com/somepath/redirect`这样的URL时,Nginx会尝试找到`/somepath/redirect`这个文件或目录。如果找不到,就会进入if条件判断。如果满足正则表达式`/~ /redirect$`(匹配以"/redirect"结尾的路径),它会把URL重写为`http://example.com/somepath`,并将状态码设置为301(永久重定向)。
阅读全文