Nginxrewrite重定向配置详解
参考资料
Nginx的rewrite模块用于实现URL重写和重定向。以下是常见的rewrite配置详解:
1. rewrite指令
语法:
rewrite regex replacement [flag];作用: 根据正则表达式匹配URL,并将其重写为指定的URL。
参数:
regex: 正则表达式,用于匹配请求的URL。replacement: 替换的URL。flag: 可选参数,用于控制重写行为。
常用flag:
last: 停止处理当前rewrite指令,并重新匹配新的URL。break: 停止处理当前rewrite指令,不再匹配其他rewrite规则。redirect: 返回302临时重定向。permanent: 返回301永久重定向。
示例:
rewrite ^/old-url$ /new-url permanent;
将/old-url永久重定向到/new-url。
2. return指令
语法:
return code [text];或return code URL;作用: 直接返回指定的HTTP状态码,并可选择返回文本或重定向URL。
示例:
return 301 /new-url;
返回301状态码,并将请求重定向到/new-url。
3. if指令
语法:
if (condition) { ... }作用: 根据条件执行特定的rewrite规则。
示例:
if ($host = 'example.com') {
rewrite ^/(.*)$ http://www.example.com/$1 permanent;
}如果请求的host是example.com,则将其重定向到www.example.com。
4. location指令
语法:
location [modifier] uri { ... }作用: 根据请求的URI匹配特定的配置块,并在其中使用rewrite规则。
示例:
location /old-path {
rewrite ^/old-path/(.*)$ /new-path/$1 break;
}将/old-path/下的所有请求重写到/new-path/。
5. 常见应用场景
强制HTTPS:
if ($scheme != "https") { return 301 https://$host$request_uri; }去除www前缀:
if ($host ~* "^www\.(.*)$") { return 301 $scheme://$1$request_uri; }URL美化:
rewrite ^/product/([0-9]+)$ /product.php?id=$1 last;
6. 注意事项
避免过度使用
if指令,因为它可能导致性能问题。使用
rewrite时,注意正则表达式的性能影响。尽量使用
return指令进行简单的重定向,而不是复杂的rewrite规则。
通过合理配置rewrite规则,可以实现灵活的URL重定向和重写功能。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-64.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
