今天继续给大家介绍Linux运维的相关知识,本文主要内容是Nginx的 URL重写实战。本文主要列举了几个常见的使用Nginx的URL重写的例子,并分别进行了配置,希望能够对您有所帮助。
阅读本文,您需要对Nginx的Rewrite功能和规则有一定的了解,如果您对此还存在困惑,欢迎您查阅我博客内的其他文章,相信您一定会有所收获!
推荐阅读:
LNMP详解(十一)——Nginx URL重写原理
一、网站建设时跳转
当网站进行建设或者发现了bug进行修复时,需要暂时性的将网站页面跳转到一个指定页面。以免其他客户端访问该站点时,资源不存在返回错误页面,影响站点美观建设。
要实现网站建设时对访问资源的跳转,可以直接在Nginx的配置文件中,http模块下的server模块中,添加如下内容:
rewrite ^/$ http://192.168.136.12/under_construction.html redirect;
1
这样,当我们访问页面资源时,会发生如下跳转:
二、访问资源不存在时跳转
除了上述设置,站点一般还会设置当访问资源不存在时,重定向跳转到一个指定页面上,这种功能的实现需要在Nginx的主配置文件中进行如下设置:
location / {
root /var/www/html;
index index.html index.htm;
if (!-e $request_filename){
rewrite ^/(.*)$ /lost.html redirect;
}
}
1
2
3
4
5
6
7
这样,当我们访问一个根本不存在的站点时,结果如下:
三、根据浏览器进行跳转
当前,随着移动互联网的不断兴起,站点经常要设计两种页面,一种是针对手机用户的,一种是针对电脑用户的,这两种页面都符合各自用户分辨率的需求,因此也会给用户一种美观的感觉。这种功能的实现,就要求我们的Nginx根据不同的客户端类型进行跳转,实现如下所示:
location / {
root /var/www/html;
index index.html index.htm;
if ($http_user_agent !~* "chrome"){
rewrite ^/$ http://192.168.136.12/wrongpage.html redirect;
}
}
1
2
3
4
5
6
7
上述代码实现了当使用非谷歌浏览器访问时,重定向至一个错误页面的场景,结果如下所示:
四、伪静态页面跳转
最后,我们进行一项当前站点经常配置的伪静态站点操作。所谓伪静态,就是指将一个含有参数的动态页面重定向伪装成一个静态页面。这样一来,即可以实现动态页面与数据库交互,又可以使得搜索引擎方便收录。
假设我们需要进行伪静态站点设置,将对http://192.168.136.102/false_static.php?id=【整数】的访问伪装成伪静态页面http://192.168.136.102/false_static/【整数】,那么我们应该在Nginx主配置文件中增添如下内容:
rewrite ^/false_static/(\d+)$ /false_static.php?id=$1 last;
1
在上述rewrite规则中,\d表示一个证书,前面表示匹配伪静态的页面规则,后面表示进行重定向后的页面。上述配置完成后,重启Nginx服务器,尝试访问该伪静态站点,结果如下所示:
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/122997744