Nginx提供了强大的URL重写功能,可以使用rewrite指令来实现URL的重写
常见的URL重写有以下几种方式:
- 重定向:将旧的URL地址重定向到新的URL地址,常用于网站改版、页面删除等场景。
rewrite ^/old-url$ /new-url permanent;
-
正则匹配:通过正则表达式匹配URL,然后重写成新的URL。
rewrite ^/(.*)\.html$ /$1.php last;
-
反向代理:将请求转发到其他服务器处理,常用于负载均衡、缓存等场景。
rewrite ^/api/(.*)$ /$1 break; proxy_pass http://backend;
-
参数处理:将URL中的参数进行处理,例如去掉某个参数、修改参数值等操作。
rewrite ^/article/(.*)$ /article.php?id=$1 last; rewrite ^/search/(.*)$ /search.php?keyword=$1 last;
注意:rewrite指令需要放在server块或location块中,并且需要在location块中使用“last”参数来停止匹配,否则会出现无限循环的问题。