最近有个在官网加【行业资讯】的需求。考虑到主要目的是为了推广,决定对资讯的栏目和内容页进行伪静态处理。
下面以文章 id 为 5 的文章页为例。原始地址为:
oriUrl = http://blog.muzixizao.com/?p=5
其实所谓的伪静态,就是去除地址里的动态参数,比如 ?、= 等,以便更适应搜索引擎优化搜索,当然,也可以美化我们的 url。
现在,我们可以将上述链接的伪静态地址定为:
staticUrl = http://blog.muzixizao.com/p/5.html
也就是说,当我们在地址栏中输入 staticUrl 时,需要服务器匹配到 oriUrl 匹配的路由。这个对于 nginx 而言,一个正则匹配就够了。
location / {
rewrite ^/p/(d+).html$ /?p=$1; 将 /p/140.html 重写成 /?p=140
}
对于 nginx 的路由匹配不太明白的,可以参考 Nginx location匹配规则。
如果有较多的匹配规则,可以将伪静态的路由重写抽离成一个单独的文件,在对应域名下引入重写文件即可。
# rewrite.conf
location / {
rewrite ^/p/(d+).html$ /?p=$1; 将 /p/140.html 重写成 /?p=140
}
# nginx.conf
location / {
include rewrite.conf
}