nginx之地址重写

nginx地址重写

1,语法
格式:rewrite 旧地址 新地址 [选项]
选项:
rewrite 旧地址 新地址 [选项];
last 不再读其他rewrite
break 不再读其他语句,结束请求
redirect 临时重定向
permament 永久重定向

2,实战

1)实现访问jluo.html重定向到jluocc.html(不跳转地址栏)
#vim /usr/local/nginx/conf/nginx.conf
ocation / {
root html;
index index.html index.htm;
rewrite /jluo.html /jluocc.html; #转义
}

2)实现访问jluo.html重定向到jluocc.html(跳转地址栏)
#vim /usr/local/nginx/conf/nginx.conf
ocation / {
root html;
index index.html index.htm;
rewrite /jluo.html /jluocc.html redirect; #转义
}

3)实现访问www.jluo.com的请求重定向到www.jluocc.cn去
server {
listen 80;
server_name www.jluo.com;
rewrite ^/ http://www.jluocc.cn/;
location / {
root html;
index index.html index.htm;
}
}

4)实现访问www.jluo.com的子页面,重定向到www.jluocc.cn相同的子页面去
server {
listen 80;
server_name www.jluo.com;
rewrite ^/(.*) http://www.jluocc.cn/$1; //使用正则
location / {
root html;
index index.html index.htm;
}
}

5)实现不同的设备访问相同的地址返回的页面不同
用途:实现部署不同页面(手机端,电脑端)
如:实现curl和火狐访问相同链接返回的页面不同
[[email protected] ~]# echo "I am Normal page" > /usr/local/nginx/html/test.html
[[email protected] ~]# mkdir -p /usr/local/nginx/html/firefox/
[[email protected] ~]# echo "firefox page" > /usr/local/nginx/html/firefox/test.html
[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
#这里,~符号代表正则匹配,符号代表不区分大小写
if ($http_user_agent ~
firefox) { #识别客户端firefox浏览器
rewrite ^(.*) /firefox/$1;
}
提示:
每个实验做完都是需要重新加载配置文件的,命令如下
[[email protected] ~]# /usr/local/nginx/sbin/nginx -s reload
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

3,nginx常量
#tail -1 /usr/local/nginx/log/access.log
192.168.4.254 -  tom  [31/Oct/2018:21:46:44 +0800] " GET / HTTP/1.1"  200 2 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"

$remote_addr:远程客户机的地址=> 192.168.4.254
$remote_user:远程登录用户,即为nginx用户认证页面登录的用户=>tom 没有即为 -
$time_local:访问的时间=>31/Oct/2018:21:46:44 +0800
$request:请求方式=>GET / HTTP/1.1
$sttatus:请求返回的状态码=>200
$body_bytes_sent:字节大小=>2
$http_user_agent:客户端设备信息=>"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"

原文地址:http://blog.51cto.com/14050800/2312717

时间: 2024-10-07 09:10:46

nginx之地址重写的相关文章

Apache Nginx URL 地址 重写

URL重写这东西在工作中用了很多次了,但每次都忘记了要记得把知道的积累下来. 哎,要么认为没必要,要么就是没时间?! 一.Apache 篇 官方地址:http://man.chinaunix.net/newsoft/ApacheManual/mod/mod_rewrite.html 1.htaccess基本语法介绍 服务器有配置文件不可能由我们来改,所以大多情况下要在网站的根目录下建一个.htaccess文件. #设置重写的根目录RewriteBase /#开启重写引擎RewriteEngine

nginx rewrite uri地址重写

介绍 大家经常会遇到这样需求,一个活动页面的URL地址很长,推广起来产品运营和用户反馈不容易记住 不美观,但是暂时没办法修改代码,这个时候就可以用到rewrite.或者你现在网站升级到https现在有些用户还在访问http你想统一用https,这些都可以用rewrite规则来实现. rewrite会重写用户的请求地址,但是不会修改问号后面参数,返回给用户的httpcode为302. 语法:rewrite regex replacement [flag]; 作用域:server, location

nginx篇最初级用法之地址重写

nginx服务器的地址重写,主要用到的配置参数是rewrite rewrite regex replacement flag rewrite 旧地址 新地址 [选项] 支持的选项有: last 不再读其他rewrite break 不再读其他语句,结束请求 redirect 临时重定向 permament 永久重定向 在nginx网页目录中添加两个页面进行测试 [[email protected] html]# echo "new page" > new.html [[email

nginx地址重写模块

该ngx_http_rewrite_module模块用于使用PCRE正则表达式更改请求URI,返回重定向,以及有条件地选择配置.rewrite指令的功能就是,使用nginx提供的全局变量或自己设置的变量,然后结合正则表达式和标志位实现url重写以及重定向.因此需要检查pcre是否安装 [[email protected]]# rpm -q pcrepcre-8.32-17.el7.x86_64breakbreak语法语法 break;默认 -应用位置 server,location,if停止处理

LNMP部署(地址重写)

location 作用:可以有多个会匹配地址栏里的扩展地址进行匹配支持正则: ~ .php$ 代表正则匹配 模糊匹配 以.php结尾的地址 格式rewrite 旧地址 新地址 选项rewrite regex replacement flag 选项flag可以是如下参数last停止执行其他重写规则,根据url继续搜索其他location,地址栏不改变 break 停止执行其他重写规则,完成本次请求 redirect 302临时重定向地,址栏改变,爬虫不更新url permanent 301永久重定

Cento7+Nginx 之 URL重写

Cento7+Nginx  之  URL重写 我们前一篇文章写了一个Cento7+Nginx 反向代理实现多域名跳转,今天主要介绍一下Cento7+Nginx  之  URL重写, Hostname:A-S.IXMSOFT.COM IP:192.168.5.20 Role:Nginx server 我们首先准备安装Nginx仓库 Yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.

项目搭建系列之四:SpringMVC框架下使用UrlRewrite实现地址重写

简单记录一下UrlRewrite实现地址重写功能. 1.pom.xml 在pom.xml增加配置UrlRewrite jar <!-- URL Rewrite --> <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>4.0.4</version> </dependen

地址重写--Java中urlrewriter的使用

最近公司以前的一个项目需要升级改版,其中的一个模块是使用Struts2做的不需要改动,但是需要将其从之前的项目里面剥离出来,看了看官网,发现所有的链接访问的静态地址,以为是FreeMarker实现的,仔细研究了会发现不是那么回事,原来是伪静态,程序使用了urlrewriter.其实urlrewriter的使用很简单,看看下面你就明白了. urlrewriter简介:url rewrite将我们的动态网页地址转化为静态的地址,如html.shtml,还可以隐藏网页的真正路径,比如:有时候需要将xx

apache 防盗链 与 地址重写

一.apache 防盗链  与  地址重写 http://192.168.4.254/254.html 盗链代码 192.168.4.254  web-server vim  254.html <html> <body> <a href="http://192.168.4.253/one.png" >  show image </a> </body> </html> 在192.168.4.253服务器上做防盗链配置