`
zzsj123
  • 浏览: 46001 次
社区版块
存档分类
最新评论

NGINX 通过 rewrite实现对URL的改写

 
阅读更多
$args :这个变量等于请求行中的参数,同$query_string
$content_length : 请求头中的Content-length字段。
$content_type : 请求头中的Content-Type字段。
$document_root : 当前请求在root指令中指定的值。
$host : 请求主机头字段,否则为服务器名称。
$http_user_agent : 客户端agent信息
$http_cookie : 客户端cookie信息
$limit_rate : 这个变量可以限制连接速率。
$request_method : 客户端请求的动作,通常为GET或POST。
$remote_addr : 客户端的IP地址。
$remote_port : 客户端的端口。
$remote_user : 已经经过Auth Basic Module验证的用户名。
$request_filename : 当前请求的文件路径,由root或alias指令与URI请求生成。
$scheme : HTTP方法(如http,https)。
$server_protocol : 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
$server_addr : 服务器地址,在完成一次系统调用后可以确定这个值。
$server_name : 服务器名称。
$server_port : 请求到达服务器的端口号。
$request_uri : 包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。
$uri : 不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。
$document_uri : 与$uri相同。

 

符号解释:
^ 匹配字符串的开始
/ 匹配域名的分隔符
. 匹配除换行符以外的任意字符
* 重复零次或更多次
(.*) 匹配任意字符
.* 匹配任意文本
$ 匹配字符串的结束

 

例子

 

server

   {

   listen 80;

   server_name www.xyz.com;

   index index.htm index.php;

   root  /export/home/www

//下面条件不能用数学运算  实现的功能是访问www.abc.com/index.php?type=2&tid=id12345

//都跳转成www.xyz.com/index.php?type=2&tid=id12345

   if ($host = "www.abc.com"  ){

   rewrite ^/(.*)$ http://www.xyz.com/$1$2 permanent;

    }

  }

 

 

# 如果文件不存在则返回400 if (!-f $request_filename) { return 400; } # 如果host不是xuexb.com,则301到xuexb.com中 if ( $host != "xuexb.com" ){ rewrite ^/(.*)$ https://xuexb.com/$1 permanent; } # 如果请求类型不是POST则返回405 if ($request_method = POST) { return 405; } # 如果参数中有 a=1 则301到指定域名 if ($args ~ a=1) { rewrite ^ http://example.com/ permanent; }

 

 

更多精彩到文章

 

https://xuexb.com/html/nginx-url-rewrite.html

 

http://seanlook.com/2015/05/17/nginx-location-rewrite/

 

http://blog.csdn.net/xingfujie/article/details/7337832

 

分享到:
评论

相关推荐

    Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写[文].pdf

    Nginx 中的 rewrite 模块是实现 URL 重写和.redirect 的强大工具。下面我们将详细介绍 Nginx 中如何使用 rewrite 实现二级域名、三级域名、泛域名、路径的重写。 二级域名重写 在 Nginx 中,使用 rewrite 可以实现...

    Nginx的Rewrite规则与实例

    其中,Rewrite模块是Nginx的一项重要特性,它允许管理员对HTTP请求进行重写、重定向,从而实现灵活的URL管理和优化。本文将深入探讨Nginx的Rewrite规则,通过实例来展示其在实际场景中的应用,帮助读者更好地理解和...

    Nginx关于Rewrite执行顺序详解.docx

    在Nginx中,Rewrite模块是实现URL重写的重要工具,它允许我们根据预定义的规则对请求的URL进行转换,从而实现动态URL到静态URL的映射、隐藏真实路径、实现URL路由等目的。这篇文档将深入解析Nginx中Rewrite模块的...

    nginx设置rewrite规则

    Nginx的rewrite模块允许我们根据特定的条件重写请求的URI,这在实现URL路由、隐藏真实路径、SEO优化等方面非常有用。它的语法结构通常为: ```nginx rewrite <regex> <replacement> ; ``` 其中,`<regex>`是正则...

    实例讲解nginx的rewrite规则

    在Nginx中,使用`rewrite`指令可以实现对URL的重写,其中涉及到正则表达式的匹配方式有以下几种: 1. **区分大小写的匹配**:使用`~`符号,例如:`rewrite ^/example /otherpage permanent;` - 这种情况下,`/...

    nginx rewrite常用示例

    通过上述示例,我们可以看到 Nginx Rewrite 功能的强大之处在于能够灵活地处理各种复杂的 URL 重定向场景。无论是简单的 URL 重定向、基于 IP 的重定向还是复杂的基于 URI 的重定向,Nginx 都提供了丰富的工具和选项...

    nginx rewrite 实现URL跳转的方法

    在配置Nginx时,掌握如何使用Rewrite规则对于实现复杂的URL重写和优化网站的SEO排名具有重要意义。 在Nginx配置文件中,Rewrite规则被定义在server块中。一条基本的Rewrite规则包括三个部分:patten(匹配模式)、...

    nginx-rewrite彻底解决discz X3多入口问题

    #nginx-rewrite彻底解决discz X3多入口问题 #本规则仅适用于nginx。请大家举一反三,根据自己的实际应用情况进行适当调整。有点繁琐,但是有用。 #本文由丽江热线CTO shwan原创,转载请保留本行信息。应用效果见:...

    详解nginx rewrite和根据url参数location

    首先查看下nginx是否支持rewrite: ./nginx -V 不支持说明安装nginx时候缺少pcre,需要重新安装nginx: #安装pcre wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz tar -zxvf pcre-...

    让Nginx支持Rewrite功能,所依赖的PCRE包:pcre_8.35

    这个库为Nginx提供了对Perl语法的正则表达式的支持,使得我们可以使用复杂的规则来重定向或修改请求的URL。 PCRE库是由Vernon Kester设计并维护的,其主要目标是与Perl语言中的正则表达式兼容。这意味着在Nginx配置...

    Nginx常用Rewrite伪静态法则

    Nginx常用Rewrite伪静态法则 信赖此刻大部门用Linux VPS的伴侣都在利用这个敏捷传布的Nginx,本日就清算一下最常见的PHP法式的Rewrite(伪静态法则)。 Wordpress: location / { index index.html index.php; if ...

    Nginx+lua通过url传参的方式实现动态代理

    ### Nginx+Lua通过URL传参方式实现动态代理 #### 概述 在现代Web应用开发中,灵活地管理后端服务之间的通信是至关重要的。动态代理技术为这一需求提供了解决方案,使得前端可以方便地根据业务逻辑将请求转发至不同...

    nginx之rewrite

    Nginx中的rewrite模块是一个非常实用的功能,它允许用户在服务器中动态地重写URL,实现URL的灵活处理,包括URL重定向和内部跳转等操作。rewrite规则在nginx的配置文件中定义,通常在server、location和if指令块中...

    nginx脚本引擎与rewrite设计原理(二)

    通过对Nginx脚本引擎中`set`和`rewrite`指令的深入解析,我们可以看出,Nginx的设计充分考虑了灵活性和效率。无论是对变量的管理,还是对复杂URL重写的实现,Nginx都展现出了其作为高性能Web服务器的强大能力。这些...

    nginx中带问号(?) 带参数的rewrite规则

    在Nginx服务器配置中,`rewrite`指令用于URL重写,这在创建动态到静态页面的重定向、实现URL路由、或者根据特定条件改变URL结构时非常有用。当URL中包含问号(`?`)以及参数时,处理起来可能会有些复杂,因为问号及其...

    nginx rewrite规则

    其中,`rewrite`规则是Nginx的一项重要功能,它允许我们重写URL,实现动态路由、URL美化等目的。与Apache的`mod_rewrite`模块相比,Nginx的`rewrite`规则在语法和工作方式上有所不同,这使得理解并熟练掌握Nginx的`...

    Nginx服务器下使用rewrite重写url以实现伪静态的示例

    Nginx的rewrite模块可以用来重写URL,从而实现伪静态功能,这对于搜索引擎优化(SEO)非常有益。下面我们将详细介绍Nginx中使用rewrite模块重写URL的示例,以及如何为Discuz!和WordPress这样的PHP程序实现伪静态。 ...

    Nginx URL重写rewrite机制原理及使用实例

    Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持 rewrite是实现URL重写的关键指令,根据regex(正则表达式)...

Global site tag (gtag.js) - Google Analytics