-
配置重写的配置
-
编辑 /usr/local/nginx/conf/nginx.conf配置文件 vi /usr/local/nginx/conf/nginx.conf
-
配置规则是:
~ 为区分大小写匹配
~* 为不区分大小写匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配匹配到的才会进入大括号中执行其中的配置,而重写配置就在大括号中通过上面的配置可以看出我让jsp|jspx|do|html|action结尾的访问进入,执行其中配置,这里就有了重写的配置
-
在大括号的配置中,还能写if判断来充当配置的前提条件,其中可以用到以下符号,类似与shell脚本的使用:
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行重写最主要的配置是:
rewrite "正则匹配的url端口号以后部分" 重写后的地址串 后缀标记;(可用$+数字来匹配相应的正则匹配的相应组的内容,这里的组以小括号划分。如$1,$2等)
后缀标记有:
last 相当于Apache里的[L]标记,表示完成rewrite,不再匹配后面的规则
break 与last类似
redirect 返回302临时重定向
permanent 返回301永久重定向 -
-
测试重写结果
- 新建个action跳转到指定的页面,页面上展示传的参数,页面只做展示用,主要是为了看用http://169.254.19.4/test/uid/1234234/product123898323_showPro.html在配置了重写后能否重写成url:http://169.254.19.4/test/showPro.action?uid=1234&product=234343243从而能到达指定的action并获取传的参数。struts配置如下:action如下:
页面就取配置nginx+tomcat+memcached测试用的页面在页面input空间中加上默认值的形式
-
将工程拷贝到两个tomcat的webapps下,重启nginx和两个tomcat分别用 http://169.254.19.4/test/uid/1234234/product123898323_showPro.html和 http://169.254.19.4/test/showPro.action?uid=1234&product=234343243访问结果是一致的,如下:
由此可见重写成功
Nginx的url重写
最新推荐文章于 2021-11-15 14:16:55 发布