使用nginx伪静态实现GET传参

By | 2020年6月22日

不管是nginx还是apache,都可以配置伪静态;伪静态之所以大家都会使用,那是因为伪静态url链接看起来相对比较舒服,也可以让url变得更简洁,而且对于seo优化有好处。

接下来就给大家介绍如何配置nginx伪静态规则,本文给大家以一个简单的实例作为示例,至于较为复杂的请大家自行改进扩展;

if (!-e $request_filename) {
            rewrite ^/(.*)/(\.html)$ /index.php?s=$1&%1 last;
            rewrite ^/article/(.*)\.html$ /index.php?s=article&id=$1 last;
            break;
}

上面代码类似于正则替换,如果您了解php正则替换,那么您可能对于上面的代码就很熟悉了,您也会读懂以上代码。

所实现的效果如下:

以上的伪静态规则就是将链接 www.webhoo.cn/index.php?s=index.php?s=article&id=123455hjihiuhiu567 替换成 www.webhoo.cn/article/123455hjihiuhiu567.html

伪静态规则介绍:

rewrite ^/(.*)/(\.html)$ /index.php?s=$1&%1 last;

第一个匹配项是匹配所以参数,第二个匹配项是固定项,将url结尾后缀转换成html。

其实第一条伪静态规则是先定义一个url框架。

接下来介绍第二条伪静态规则:

rewrite ^/article/(.*).html$ /index.php?s=article&id=$1 last;

这条规则就是真正实现伪静态的规则了,具体正则匹配就不多介绍了,唯一一个通配符就是匹配你想要的参数的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注