2024-11-06 00:43:58
URL重写是Nginx服务器的核心功能之一,用于处理如
1. set指令:在server, location, if作用域下设置自定义变量,如设置$name变量为请求参数中的'tom',如:set $name $arg_name;
2. if指令:根据条件执行后续指令,如检查变量值、正则匹配或文件/目录存在状态,如if ($name = 'tom') { ... }
3. break指令:中断当前指令链,后续指令仅在break前有效,如测试URL参数存在时执行if逻辑。
4. return指令:停止处理并返回特定状态码或URL,如return 301
5. rewrite指令:核心重写指令,基于正则表达式匹配和替换URI,如rewrite ^/test(.*)$ /newPage$1 break;
例如,实现域名重定向:当访问www.aaa.com时,使用rewrite ^https?://www.aaa.com/(.*)$
防盗链处理:通过if指令检查来源URL,非预期来源返回错误页面,如if ($http_referer !~* '^(https?://)?(www\.)?bbb\.com') { return 403; }。
通过rewrite_log指令控制rewrite指令处理结果的日志记录,如rewrite_log on;
rewrite指令广泛应用于网站结构优化、URL重定向、安全性控制等领域,为Nginx提供了强大的灵活性和定制性。