1
2
| 问题描述: 现在后端采用nginx 动静分离。某一页面地址如“www.example.com/article.html?page=1”所示,通过get参数传递到页面,再在页面上解析参数,通过ajax获取到内容展示出来。
但该类网址是url相同的只是参数不同。想要改成如“www.example.com/page1.html” 这种类型的url,页面还是同一个页面,但是看起来像拥有多个页面一样。
|
1
| 让nginx 解析url,匹配出所有的 `www.example.com/page*.html` 形式的url,统统返回给前端相同的页面。
|
1
2
3
4
5
6
| // 修改后的配置如下
location / {
rewrite /page([0-9]+?)\.html /article.html break;
root /home/html/;
}
|
1
2
3
| rewrite [正则表达式 替换前的URL] [替换后的URL] [标识];
在匹配资源时将所有rewrite第一个参数正则匹配的链接,替换成第二个参数指定的地址。
我这里是将 /page(若干个数字).html 替换成 /article.html ,这样就符合要求了
|
1
2
| 正则表达式可以自由发挥,功能很强到多数都是支持的,
如果访问不通,可以去nginx下面的log/error.log 里面找找日志看看
|