请选择 进入手机版 | 继续访问电脑版

YYjia应用市场网站系统官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2483|回复: 0

[官方教程] Nginx url 重写 实现伪静态

[复制链接]

206

主题

260

帖子

2298

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2298
发表于 2015-6-10 14:33:31 | 显示全部楼层 |阅读模式
Nginx url 重写 实现伪静态
服务器上 会有一个站点的配置文件(一般是在 nginx/conf/里面),示例如下:

只要把重写规则文件中【 nginx.txt】的内容  拷贝到 红色字体那边   保存以后 重启下 nginx 就可以了



  • server {
  •         listen       80;
  •         server_name  www.linuxidc.com;
  •         #charset koi8-r;
  •         #access_log  logs/host.access.log  main;
  •         location / {
  •            proxy_pass http://192.168.1.11:8080;
  •        proxy_redirect off;
  •        proxy_set_header Host $host;
  •            proxy_set_header X-Real-IP $remote_addr;
  •            proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
  •        rewrite "/zixun/([0-9]+)(/*).html$" /zixun/$1/ last;  
  •        rewrite "/loanProduct/([0-9]+).html$" /loanProduct/show?id=$1 last;  
  •         }
  • }
解释:
  rewrite "/zixun/([0-9]+)(/*).html$" /zixun/$1/ last;
"/zixun/([0-9]+)(/*).html$"为正则表达式匹配你输入的url地址,表示/zixun/任意数字,至少出现一次,/出现0次或者多次,已.html结尾
/zixun/$1/ last; 符合以上规则的url 转发到 /zixun/$1/到这个链接上,这个就是你实现要获得数据的链接了 ,last为后面的不进行匹配了
如:http://www.xx.con/zixun/56.html 会把这个请求转发到 www.xx.con/zixun/56的servlet上获得数据

Rewrite的Flags
last - 基本上都用这个Flag。
break - 中止Rewirte,不在继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301
规则:
一般在非根的location中配置rewrite,都是用的break;而根的location使用last比较好,因为如果配置了fastcgi或代理访问jsp文件的话,在根location下用break是访问不到
正则表达式形式的模式匹配,如~*和~
  • ~ is case-sensitive match;
  • ‘~’表示大小写敏感的匹配
  • ~* specifies a case-insensitive match (firefox matches FireFox)
  • ‘~*’表示大小写不敏感的匹配(例如:“firefox”字符串可以成功匹配“FireFox”)
  • !~ and !~* mean the opposite, "doesn't match"
  • !~和!~*代表跟后面的正则匹配规则相反的规则,表示不能匹配当前正则表达式规则的字符串执行后面的处理语句
  • checking for the existence of a file using the -f and !-f operators;使用-f参数以及!-f参数检测一个文件是否存在
  • checking existence of a directory using the -d and !-d operators;使用-d参数以及!-d参数检测一个目录(路径)是否存在
  • checking existence of a file, directory or symbolic link using the -e and!-e operators;使用-e以及!-e检测是否存在一个文件,一个目录或者一个符号链接。
  • checking whether a file is executable using the -x and !-x operators.使用-x以及!-x检测一个文件是否可执行
Parts of the regular expressions can be in parentheses, whose value can then later be accessed in the$1 to $9 variables.
正则表达式部分可以嵌套,表达式后面的部分如果用到前面的表达式可以用 $1 到$9 变量表示。



www.yyjia.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

<

QQ|Archiver|手机版|小黑屋|应用+ ( 闽ICP备05035701号-12

GMT+8, 2018-6-22 04:16 , Processed in 0.109116 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表