Nginx隐藏式跳转(浏览器URL跳转后保持不变)

Nginx的隐藏式跳转可以实现将请求跳转到另一个网站的页面,并且浏览器中URL保持不变。Nginx配置中需要使用rewrite规则。下面提供两个示例来说明这种跳转需求的配置:

一、Nginx隐藏式跳转配置示例1

将请求路径https://jb51.net/data/test跳转到https://jb51.com/data/test/test.html页面。

server {
    listen       443;
    server_name  jb51.net;
    access_log  /data/nginx/logs/jb51.net-access.log main;
    error_log  /data/nginx/logs/jb51.net-error.log;

    ssl on;
    ssl_certificate /data/nginx/ssl/jb51.net.crt;
    ssl_certificate_key /data/nginx/ssl/jb51.net.key;
    ssl_session_timeout 5m;

    location = /data/test {
        rewrite /data/test /data/test/test.html break;
        proxy_pass https://jb51.com;
    }
} 

二、Nginx隐藏式跳转配置示例2

将访问172.16.60.16:8082/m2/order/secretRecording的请求跳转到172.16.60.28:8089/order/secretRecording

server {
       listen 8082;
       server_name 172.16.60.16;
       index   index.html index.php index.htm;

       location ~* ^/m2/order/secretRecording {
                proxy_next_upstream error timeout http_503 http_504 http_502;
                proxy_connect_timeout 500s;
                proxy_read_timeout 500s;
                proxy_send_timeout 500s;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                rewrite  ^(.*)$  /order/secretRecording break;  #先改写URI地址
                proxy_pass http://172.16.60.28:8089;  #跳转
       }
}

更多关于Nginx隐藏式跳转的文章请查看下面的相关链接

(0)

相关推荐

  • nginx里的rewrite跳转的实现

    一. 新旧域名跳转 作用场景:基于域名的跳转,现在公司旧域名:www.peihua.com 有业务需求要变更,需要使用新域名www.zhenguo.com代替,但是旧域名不能废除.需要跳转到新域名上,而且后面的参数保持不变 配置dns,分别配置www.peihua.com(old)和www.zhenguo.com(new)解析 rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.

  • nginx rewrite 实现URL跳转的方法

    最近工作中常常要改nginx配置,学习了nginx中rewrite的用法 URL跳转 这里说的URL跳转就是用户在访问一个URL时将其跳转到另一个URL上. 常见的应用场景是让多个域名跳转到同一个URL上,(例如让旧域名跳转到新域名上) 将静态文件请求跳转到cdn上等 根据用户设备跳转到不同站点(pc版,wap版)等. URL跳转可以通过js在页面上设置的window.location实现 也可以通过php设置header来实现 当然也可以用nginx 的 rewrite功能实现 nginx r

  • Nginx rewrite跳转应用场景详解

    应用场景1--基于域名的跳转 公司旧域名www.accp.com ,因业务需求有变更,需要使用新域名www.kgc.com 代替 不能废除旧域名 从旧域名跳转到新域名,且保持其参数不变 实验环境 Linux服务器(192.168.13.144) 测试机win7 1,安装Nginx服务 [root@localhost ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ng

  • 如何通过nginx负载均衡跳转https

    web端拷贝证书与密钥 scp -rp -P52113 /application/nginx/conf/key 10.0.0.5:/application/nginx/conf/ 在nginx负载均衡服务端配置 vim /application/nginx/conf/nginx.conf worker_processes 2; error_log logs/error.log; events { worker_connections 65535; } http { include mime.ty

  • nginx禁止直接通过ip进行访问并跳转到自定义500页面的操作

    直接上配置文件 server { listen 80 default; # 要禁止直接访问ip,需要加上default server_name ~.*; error_page 404 400 402 401 /404.html; # 定义错误状态码对应的html文件 location = /404.html { # 如果使用相对路径一般将文件放在nginx安装目录下的html/下,比如:/usr/local/nginx/html/404.html root html; } error_page

  • 详解NGINX访问https跳转到http的解决方法

    问题:浏览器打开https://www.jb51.net/aaa.html,然后跳转到http://www.jb51.net/aaa.html 网站架构:用户--https--->nginx代理---http---->tomcat/nginx+php nginx待遇发给后端的请求是http协议,后端程序跳转获取到的协议是http,返回一个redirect(http header中带Location:http://www.jb51.net/aaa.html),浏览器收到location,跳转到了

  • 利用Nginx的map指令实现页面跳转

    前言 本文主要介绍了利用Nginx中map指令实现页面跳转的方法,有需要的下面来一起学习学习. 实现方法 在 nginx.conf 的 http 域中添加 map 指令规则,这里包含一个 URL 规则映射文件: # 设置301跳转 map $request_uri $new { include /etc/nginx/redirect.map; } map 指令支持引入一个映射文件的方式,这里 redirect.map 文件内容格式如下: ~^/page/mordern-php$ /page/mo

  • Nginx中location匹配以及rewrite重写跳转详解

    目录 前言 一.rewrite跳转实现 二.rewrite执行顺序 三.rewrite跳转场景 四.语法与flg标记说明 五.Nginx常用的正则表达式符号 六.location 1.分类 2.常用匹配规则 3.优先级 4.示例 5.匹配规则定义 总结: 前言 rewrite功能就是使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记实现URL重写以及重定向例如:更换域名后需要保持旧的域名能够转到新的域名上.某网页发生改变需要跳转到新的页面.网站防盗链等等需求 rewrite只能放

  • Nginx服务器中HTTP 301跳转到带www的域名的方法

    从nginx的官方文档 documentation, 正确的nginx https 301跳转到带www域名方法的方法如下: HTTP 301跳转到带www域名方法 复制代码 代码如下: server {         listen       80;         server_name  example.org;         return       301 http://www.example.org$request_uri;     } server {         list

  • 详解nginx 301跳转到带www域名方法

    前提:在域名解析中添加 domain.com 和 www.domain.com 指向你的主机IP地址 方法1. 打开 nginx.conf 文件找到你的server配置段: server { listen 80; server_name www.domain.com domain.com; if ($host != 'www.domain.com' ) { rewrite ^/(.*)$ http://www.domain.com/$1 permanent ; } 方法2. 在配置文件里面写两个

  • nginx强制使用https访问的方法(http跳转到https)

    需求简介 基于nginx搭建了一个https访问的虚拟主机,监听的域名是test.com,但是很多用户不清楚https和http的区别,会很容易敲成http://test.com,这时会报出404错误,所以我需要做基于test.com域名的http向https的强制跳转 我总结了三种方式,跟大家共享一下 nginx的rewrite方法 思路 这应该是大家最容易想到的方法,将所有的http请求通过rewrite重写到https上即可 配置 server { listen 111:80; serve

  • Nginx根据不同浏览器语言配置页面跳转的方法

    当我们打开很多网站时,可能大家会发现,它会根据你使用的语言自动判断并跳转到不同的语言界面.例如:Google 也就是你用不同的语言,那么输入Google首页就可以自动转向你使用的语言.在这个网络普及的时代,外贸的主要途径一定是网络.也许你的企业网站既有中文版本,同时也有英文版本(如果你的公司有外贸业务).那么他们的网站是怎样实现这个功能呢?下面我们来研究下Web服务器的Header,HTTP_ACCEPT_LANGUAGE是服务器所接收的语言,一般来说是服务器的语言.在网站可以看到,firefo

  • 使用Nginx实现301跳转至https的根域名示例代码

    基于 SEO 和安全性的考量,需要进行 301 跳转,以下使用 Nginx 作通用处理 实现结果 需要将以下地址都统一跳转到 https 的根域名 https://chanvinxiao.com http://chanvinxiao.com (不带 www 的 http) http://www.chanvinxiao.com (带 www 的 http) https://www.chanvinxiao.com (带 www 的 https) 301 与 302 的区别 301是永久重定向,302

  • 关于nginx没有跳转到upstream地址的解决

    前言 今天在nginx碰到一个很奇怪的问题,在前端tomcat跳转页面的时候跳转的是upstream的地址,直接就报404,但是有些页面访问又是正常的. http://tomcat/tomcat-web/account/index 如果直接用内网ip访问是正常的,所以可以判定是nginx的问题,nginx配置如下 upstream tomcat { server 192.168.11.172:8061; server 192.168.11.172:8062; ip_hash; } server

  • nginx开启HSTS让浏览器强制跳转HTTPS访问详解

    在上一篇文章中我们已经实现了本地node服务使用https访问了,看上一篇文章效果可以看如下: 但是如果我们现在使用http来访问的话,访问不了.如下图所示: 因此我现在首先要做的是使用nginx配置下,当用户在浏览器下输入http请求的时候使用nginx重定向到https下即可.因此我们现在需要做一个简单的nginx重定向功能. 因此在我们的nginx中需要加如下重定向配置: server { listen xxx.abc.com; server_name xxx.abc.com; rewri

  • nginx 解决首页跳转问题详解

    nginx和tomcat负载均衡 比如 www.csdn.NET 网站后面有 2个tomcat. 配置负载均衡: upstream csdn-tomcat{ server 192.168.100.101:8080; server 192.168.100.102:8080; } server { listen 80; server_name www.csdn.net csdn.net; index index.html; location / { if ( $request_uri = "/&qu

  • 解决thinkPHP 5 nginx 部署时,只跳转首页的问题

    在使用tp5时候把它部署到服务器上发现一个奇葩的事情,就是它默认访问config配置的默认页,无论怎么跳转到其他接口都不好使,最终重写了  Nginx 的配置文件解决了这个问题 server{ listen 80; server_name www.XXXX.com; index index.php index.html index.htm; root /var/www/didu; location ~ \.php #原来这个里有"$" 去掉就ok { #fastcgi_pass uni

随机推荐