`
zhouzaibao
  • 浏览: 294116 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

nginx中rewrite配置问号处理

阅读更多

    今天配置一个nginx的rewrite,简直是被搞死了。

    其实我就是想把/xxx/0.mp4?key=123456abcde转换为

                         /xxx.mp4?segno=0&key=123456abcde这种形式

    经过不断的尝试,也分析了一下原因,发现niginx的内容设置中必须注意的一些问题

    1.nginx在进行rewrite的正则表达式中只会将url中?前面的部分拿出来匹配

    2.匹配完成后,?后面的内容将自动追加到url中(包含?),如果不让后面的内容追加上去,请在最后加上?即可

    3.如果要活的?后面的内容则请使用$query_string

 

    在这里提醒一点,调试的时候在rewrite的最后一个配置项中不要使用break last这些,使用redirect可以看到转换后的地址。

 

    综合以上几点,使用的配置项为

    rewrite ^/(.+)/(\d+)\.mp4$ /$1.mp4?segno=$2&$query_string? last;

0
0
分享到:
评论

相关推荐

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

    以下将详细介绍如何在Nginx中处理带参数的`rewrite`规则,以及如何去除或保留这些参数。 首先,`$query_string`变量包含了GET请求中的所有参数,而`$request_uri`则包含了原始URI,包括路径和查询字符串,但不包含...

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

    配置Nginx的rewrite规则通常在配置文件中的server或location块中进行。下面是一个配置rewrite规则的实例,假定需要将所有到达旧域名***的请求永久重定向到新域名***: server { listen 80; server_***; rewrite ...

    Nginx中防止SQL注入攻击的相关配置介绍

    问号后面的请求参数,在nginx用$query_string表 示,不能在rewrite中匹配到,需要用if判断 例如,对于参数中带有单引号的’进行匹配然后定向到错误页面, /plus/list.php?tid=19&mid=1124' rewrite ^.*([;'<>])

    详解常用的nginx rewrite重写规则

    Nginx 的 `rewrite` 指令是一个强大的URL...在实际配置过程中,可能还需要结合其他Nginx指令,如 `if` 或 `location` 来实现更复杂的逻辑。务必注意,过度使用 `rewrite` 可能会导致性能下降,因此在设计规则时需谨慎。

    Thinkphp---URL重写组件

    默认情况下,`url_model = 0`,表示使用默认的GET方式,URL中会包含问号和参数;如果设置为`1`,则启用PATHINFO模式,URL会以模块/控制器/操作的方式展现;设置为`2`,则使用兼容模式,适用于不支持PATHINFO的服务器...

    mayicms蚂蚁分类信息5.8、5.9伪静态规则

    2. **Nginx 配置**:在Nginx服务器中,我们通常会在`nginx.conf`或对应的站点配置文件中设置重写规则。例如: ```nginx location / { if (!-e $request_filename) { rewrite ^/(category)/(\d+)\.html$ /index....

    URL伪静态的准备资料.rar

    2. **Nginx实现**:在nginx.conf或服务器块中配置rewrite规则,进行URL转换。 3. **IIS实现**:利用IIS的URL重写模块,创建重写规则。 四、URL伪静态的常见问题及解决方法 1. **404错误**:检查重写规则是否正确,...

    伪静态分页解决路径问题

    - Nginx则需要在配置文件的`http`、`server`或`location`块中添加相应的`rewrite`规则。 2. **后端程序处理**:在后端代码中,需要解析这些伪静态URL,并将其映射到对应的处理函数。例如,在PHP中,可能需要解析...

    php伪静态方法

    在.htaccess或nginx.conf配置文件中设置规则,将动态URL转换为静态形式,然后通过PHP读取相应的参数处理请求。 2. 文件系统模拟:在服务器上创建与动态URL对应的静态HTML文件,当用户访问时,首先检查是否存在这个...

    ECSHOP全站URL自定义插件,支持目录形式

    对于Nginx,我们需要在server配置段中添加rewrite指令。 2. **插件安装与配置**:下载并安装此插件,根据提供的文档进行配置。这可能包括设置URL的格式、启用或禁用特定页面的URL自定义,以及调整其他相关设置。 3...

    动静态网页补充说明1

    **伪静态网页** 是一种技术手段,它通过服务器端的重写规则(如Apache的Rewrite模块或Nginx的Rewrite指令)将动态URL转换为看似静态的URL,以`.html`或`.htm`结尾,但实际内容仍然是动态生成的。这样做主要是为了...

    基于PHP的张戈博客自用的php网址在线转换二维码的API源码(伪静态).zip

    在PHP中,这可以通过重写URL规则,利用`mod_rewrite`模块在Apache服务器,或者`nginx`服务器的配置来实现。 API设计时,需要注意以下几点: 1. **输入验证**:接收的URL必须进行安全验证,防止注入攻击,例如XSS...

    url伪静态简单案例

    Nginx服务器则通过server block或location block中的rewrite规则来实现。 2. **框架或CMS内置支持**:很多PHP框架(如Laravel、CodeIgniter)和内容管理系统(如WordPress、Drupal)都有内置的URL重写机制,只需要...

    简单的存储过程分页+伪静态

    实现伪静态的方式有很多,常见的有URL重写,通过服务器配置(如Apache的.htaccess或Nginx的server block)或者Web框架内置的路由机制。例如,在PHP中,可以使用Apache的mod_rewrite模块配合.htaccess文件,定义规则...

    实用301转向到另一域名相应页面的asp代码

    1. 获取查询字符串(query string)`q`,它包含了URL中问号(?)后面的部分。 2. 获取请求的URL路径`p`。 3. 构建新的URL,将目标域名与当前URL路径结合,并添加一个名为`furl`的查询参数,用于追踪重定向来源。 4. ...

Global site tag (gtag.js) - Google Analytics