伪静态

伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是为了实时的显示一些信息,就损失了对搜索引擎的友好面。
伪静态即是网站本身是动态网页,url后有"?"加参数来读取不同数据,伪静态就是做url重写操作(rewrite)。开启伪静态后,动态网页即被转换重写成静态网页类型页面,通过浏览器访问伪静态地址和真的静态页面没区别。
但是做伪静态的前提就是服务器要支持伪静态重写URL Rewrite功能

考虑搜索引擎优化(即SEO),经过重写,使用伪静态来将动态网页后缀变为html的静态页面格式。伪静态是一种可以把文件后缀改成任何可能的一种方法,比如如果想把php文件伪静态成html文件。

www.test.com/jk/fd.php?=12
将这样的动态网页处理成
www.test.com/jk-fd-12.html

nginx配置伪静态

跳转需求:
访问http://www.test.com/news/123456.html 跳转成 http://www.test.com/news.html?id=123456

配置如下:

rewrite ^/p/(\d+).html    http://www.test.com/news.html?id=$1 last;

解释说明:
\d是数字的意思 +是最少一个{1,} 1到无穷大{1,3} 这样是1-3位数。

通过nginx配置,访问http://www.kevin.com/p/123456.html ,将重写到真实的动态网页http://a.aa.com/p/news.html?id=123456

通过伪静态配置,可将各类带参数的url解析为伪静态网址

// 带参数url
http://www.test.com/test/age/18
http://www.test.com/test/index.html?name=yangxignyi&age=18
//伪静态url
http://www.test.com/test-yangxignyi-18.html

// nginx配置
rewrite test-(\w+)-(\d+).html /index.html?name=$1&age=$2 last;

location中的rewrite,不写last和break,那么流程就是依次执行这些rewrite

  • rewrite btrak:表示url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求后,地址url不变。
  • rewrite
    last:表示url重写后,马上发起一个新的请求,再次进入server块,重试location匹配,超过10次匹配不到就报500错误,地址栏url不变。
  • rewrite redirect:表示返回302临时重定向,地址栏显示重定向后的url,爬虫不会重写url,因为是临时。
  • rewrite permanent:表示返回301永久重定向,地址栏显示重定向后的url,爬虫重写url

nginx配置

// 监听80端口
//访问www.test.com/wangla.html跳转到百度
//访问www.test.com/纯数字至少一个数字.html跳转到QQ官网
//访问www.test.com/匹配字母或数字或下划线组合.html 跳转到百度对应页面。
server {
    listen       80;
    server_name      www.test.com;
    index    index.html index.htm index.php;
 
    rewrite  ^/wangla.html$  http://www.baidu.com/ permanent;
    rewrite  ^/(\d+).html$   http://www.qq.com/ permanent;
    rewrite  ^/(\w+).html$   http://www.baidu.com/index_wd_v5.html permanent;
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐