Nginx URL重写rewrite配置及信息详解【转】
文章目录 隐藏
和apache等web服务软件一样,rewrite的组要功能是实现RUL地址的重定向。Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持
rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement,结尾是flag标记。
rewrite语法格式及参数语法说明如下:
rewrite语法规则: rewrite [flag];
regex正则:perl兼容正则表达式语句进行规则匹配
replacement替代内容:将正则匹配的内容替换成replacement
flag标记:rewrite支持的flag标记
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
rewrite参数的标签段位置:
server,location,if
配置实例
实例1 : 将http
访问强制跳转到https
地址
修改/etc/nginx/nginx.conf
文件:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.learnhard.cn;
root /www/blog/;
rewrite ^(.*)$ https://$host$1 permanent;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
增加了一行:rewrite ^(.*)$ https://$host$1 permanent;
- 正则匹配内容是任何访问路径。
- 替代内容 为
https://$host$1
- flag标记为
permanent
, 表示返回301永久重定向。
重启nginx
服务后验证一下,访问 http://www.abc.com
会强制跳转到 https://www.abc.com
。
当然,如果你想要跳转到其他的地址也可以替换$host
变量即可。
实例2 : 伪静态页面规则配置,利于搜索引擎推荐
修改/etc/nginx/nginx.conf
文件:
location /{
index index.php index.html index.htm;
# 设置伪静态页面规则 #
if (-f $request_filename/.html){
rewrite (.*) $1/.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
转自
Nginx URL重写rewrite配置及信息详解 - 悟空的修炼笔记
https://www.learnhard.cn/articles/116.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-01-06 MySql 死锁时的一种解决办法【转】