前言:
现时姐妹们对“nginxredirect后面”可能比较关注,朋友们都需要了解一些“nginxredirect后面”的相关文章。那么小编也在网上搜集了一些关于“nginxredirect后面””的相关知识,希望朋友们能喜欢,你们一起来了解一下吧!为了能够在修改网站结构或域名后,避免造成网站中的链接或在其他网站中的外链失效,已经提高网站在搜索引擎的收录量和排名等目的,通常会采用url重写与重定向,在增强网站专业化的同时,为用户提供更加舒适的使用体验。
1、rewrite模块的介绍
重写与重定向功能是现在大多数Web服务器都支持的一项功能,相对于其他产品而言,Nginx中的rewrite模块提供的功能在配置上更加灵活自由,可定制性非常高,它的实现方式简单,只需要通过rewrite指令根据Nginx提供的全局变量或自定义的变量,结合正则表达式已经进一步处理的标识就可以完成url重写或重定向。
2、rewrite实现重写
rewrite指令基本语法:
rewrite regex replacement [flag];
flag可选参数值:
last:终止rewrite,继续匹配其他规则;
break:终止rewrite,不再继续匹配;
redirect:临时重定向,返回的HTTP状态码为302;
permanent:永久重定向,返回的HTTP状态码为301;
当flag值为last或break时,表示当前的设置为重写,当flag的值为redirect或permanent时表示重定向;
2.1、添加rewrite指令
if与括号有空格,!-e与$request_filename有空格;
!-e用于判断不存在指定的文件或目录时,执行if块内的语句,内置变量$request_filename表示当前请求的文件路径;
^/.*用于匹配当前网站下的所有请求;
/default/default.html用于替换符合指定规则的请求;
if指令判断符号:
=:判断变量与内容相同;
!=:判断变量与内容不等;
~:区分大小写正则匹配;
~*:不区分大小写正则匹配;
!~:区分大小写正则不匹配;
!~*:不区分大小写正则不匹配;
-f:判断文件存在;
!-f:判断文件不存在;
-d:判断目录存在;
!-d:判断目录不存在;
-e:判断文件或目录存在;
!-e:判断文件或目录不存在;
-x:判断可执行文件;
!-x:判断不可执行文件;
测试验证:
在网站根目录下创建default目录,并在改目录下编写default.html文件:
重启访问一个不存在的文件
2.2、break和last标识的区别
在使用rewrite实现重写时,需要注意flag可选参数值break和last的区别,前者在rewrite指令匹配成功后就不再进行匹配,而 后者在rewrite后会根据rewrite匹配的规则重新发起一个请求继续进行匹配。
设置匹配规则:
重启访问
3、rewrite实现重定向
rewrite的重定向就是将用户访问的url修改为重定向的地址,只需将flag的可选参数值设置为redirect或permanent即可实现。
利用set指令为变量$name赋值,$1表示符合正则表达式第一个字模式的值,子模式([0-9]+)匹配到的值;
用户请求-数字.jpg时,重定向到数字.jpg;
标签: #nginxredirect后面 #nginxrewrite替换 #phpnginxurl替换 #nginx大小写转换 #nginx重写路径