Nginx的url重写

  1. 配置重写的配置

    1. 编辑 /usr/local/nginx/conf/nginx.conf配置文件 vi /usr/local/nginx/conf/nginx.conf

    2. 配置规则是:

    ~ 为区分大小写匹配
    ~* 为不区分大小写匹配
    !~和!~*分别为区分大小写不匹配及不区分大小写不匹配

    匹配到的才会进入大括号中执行其中的配置,而重写配置就在大括号中通过上面的配置可以看出我让jsp|jspx|do|html|action结尾的访问进入,执行其中配置,这里就有了重写的配置

    1. 在大括号的配置中,还能写if判断来充当配置的前提条件,其中可以用到以下符号,类似与shell脚本的使用:

    -f和!-f用来判断是否存在文件
    -d和!-d用来判断是否存在目录
    -e和!-e用来判断是否存在文件或目录
    -x和!-x用来判断文件是否可执行

    重写最主要的配置是:

    rewrite "正则匹配的url端口号以后部分" 重写后的地址串 后缀标记;(可用$+数字来匹配相应的正则匹配的相应组的内容,这里的组以小括号划分。如$1,$2等)

    后缀标记有:
    last 相当于Apache里的[L]标记,表示完成rewrite,不再匹配后面的规则
    break 与last类似
    redirect 返回302临时重定向
    permanent 返回301永久重定向

  2. 测试重写结果

    1. 新建个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空间中加上默认值的形式

    1. 将工程拷贝到两个tomcat的webapps下,重启nginx和两个tomcat分别用 http://169.254.19.4/test/uid/1234234/product123898323_showPro.htmlhttp://169.254.19.4/test/showPro.action?uid=1234&product=234343243访问结果是一致的,如下:

      由此可见重写成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值