上午遇到一个nginx匹配问号问题

/search?q=s 问号始终无法匹配上,去掉问号就好了。

从这个测试来分析,?后的内容好像不参与正则匹配了。查了查文档,?后的内容其实有一个内置变量,就是$query_string,更改了下rewrite:

rewrite "^/search"                              /index.php?module=video&act=s&do=index&$query_string last;

下面弄一些nginx常用一些内置变量

首先,一些变量代表了客户端请求头部的一些字段,如:$http_user_agent, $http_cookie等等。注
意,由于这些变量会在请求中定义,所以可能无法保证他们是存在的或者说可以定义到一些别的
地方(例如遵循一定的规范)。
除此之外,下列是一些其他变量:
$arg_PARAMETER
这个变量包含在查询字符串时GET请求PARAMETER的值。
$args
这个变量等于请求行中的参数。
$binary_remote_addr
二进制码形式的客户端地址。
$body_bytes_sent
传送页面的字节数

$content_length
请求头中的Content-length字段。
$content_type
请求头中的Content-Type字段。
$cookie_COOKIE
cookie COOKIE的值。
$document_root
当前请求在root指令中指定的值。
$document_uri
与$uri相同。
$host
请求中的主机头字段,如果请求中的主机头不可用,则为服务器处理请求的服务器名称。
$is_args
如果$args设置,值为"?",否则为""。
$limit_rate
这个变量可以限制连接速率。
$nginx_version
当前运行的nginx版本号。
$query_string
与$args相同。

$remote_addr
客户端的IP地址。
$remote_port
客户端的端口。
$remote_user
已经经过Auth Basic Module验证的用户名。
$request_filename
当前连接请求的文件路径,由root或alias指令与URI请求生成。
$request_body
这个变量(0.7.58+)包含请求的主要信息。在使用proxy_pass或fastcgi_pass指令的location中比较有
意义。
$request_body_file
客户端请求主体信息的临时文件名。
$request_completion
未知。
$request_method
这个变量是客户端请求的动作,通常为GET或POST。
包括0.8.20及之前的版本中,这个变量总为main request中的动作,如果当前请求是一个子请求,并
不使用这个当前请求的动作。
$request_uri
这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看$uri更改或重写URI。
$scheme

HTTP方法(如http,https)。按需使用,例:
rewrite ^(.+)$ $scheme://example.com$1 redirect;
$server_addr
服务器地址,在完成一次系统调用后可以确定这个值,如果要绕开系统调用,则必须在listen中指
定地址并且使用bind参数。
$server_name
服务器名称。
$server_port
请求到达服务器的端口号。
$server_protocol
请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
$uri
请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它
可以通过内部重定向,或者使用index指令进行修改。

另外:
HTTP_X_FORWARDED_FOR是透过代理服务器取得客户端的真实IP地址,有些用此方法读取到的仍然是代理服务器的IP。还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 HTTP_X_FORWARDED_FOR 取到的值将是空的。

nginx匹配问号的问题相关推荐

  1. nginx匹配规则_Nginx系列之server_name定义与匹配规则

    Nginx系列之server_name定义与匹配规则 server_name用来指定请求中的Host头部,在上一节的基于域名的虚拟机中,nginx匹配的规则就是根据server_name的不同,结合请 ...

  2. 正则匹配问号_爬虫之正则表达式

    1什么是正则表达式 正则表达式,也称规则表达式(Regular Expression,在代码中常简写为RE). 2为什么使用 用来匹配.替换一类具有相同规则字符串 3使用规则 3.1单字符: 3.2数 ...

  3. nginx匹配规则说明以及匹配的优先级

    location 匹配规则 语法规则 location [=|~|~*|^~] /uri/ { - } 模式 含义 location = /uri = 表示精确匹配,只有完全匹配上才能生效 locat ...

  4. 正则匹配问号_跟BBEdit学正则表达式,轻松地学习晦涩难解的语法

    作为搜索替换文本的强大工具,正则表达式(通常被称为"Grep")可能会让初学者望而生畏--好在有<BBEdit>.这款 App 的"Pattern Playg ...

  5. nginx判断html结尾,nginx匹配以XXX结尾的

    匹配以do结尾的所有文件:如http://192.168.126.168:8080/delivery/transportPlanData.do?startRelease=2019-07-06& ...

  6. php正则匹配问号,正则点号和问号 +

    ? 匹配前面的子表达式零次或一次.例如,"do(es)?"可以匹配"does"或"does"中的"do".?等价于{0, ...

  7. nginx匹配多个路径转发到同一个地址写法

    本质上还是location正则匹配规则的活用 (todo 有时间补完相关知识到这里21-09-16) location ~ ^/(路径1|路径2|路径3|路径4|路径5) {proxy_pass 跳转 ...

  8. nginx 配置文件的匹配规则

    引出 之前在对php-fpm 进行nginx代理时, 为了对后台限定 IP 访问, 添加了如下配置: location ^~ /admin {allow 127.0.0.1;deny all; } 结 ...

  9. Nginx的正则表达式

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Ра ...

最新文章

  1. poj 1328 Radar Installation
  2. 方舟原始恐惧mod生物代码_重磅!命令与征服和红色警戒源代码在GitHub公布了
  3. centos 7.0 ln命令 和chkconfig 命令介绍 开机自动启 服务
  4. 软件工程 --第七章 -- 实现(未完)
  5. vue从入门到精通之进阶篇(一)vue-router:导航守卫
  6. linux下查看内存频率,内核函数,cpu频率
  7. 秋招下半场依然没offer,怎么办?
  8. python开发mbus程序_一种PMBus总线电源模块的控制与实现
  9. 设置gradle远程仓库_Gradle 创建java项目详细步骤
  10. 通过计数器完成工厂可视化看板的开发
  11. iview表格表头上添加icon图标
  12. 现代轻奢风格装修讲解
  13. cifar 10 最高正确率
  14. 1 微信公众平台数据统计功能的作用是什么?
  15. 辰视智能携手大族机器人亮相深圳工业展暨22届SIMM深圳机械展
  16. java atd_Android R.java问题汇总
  17. 采集程序 -【开源项目】
  18. 苏州大学文正学院计算机组成期末,苏州大学文正学院操作系统复习题
  19. windows cmd命令使用ls
  20. 整流2-单同步坐标锁相原理+算法+代码

热门文章

  1. 数论之互质与欧拉函数
  2. “刷脸回家黑科技”,人脸识别智能门禁D508重磅来袭!
  3. 让你终身不发火的5个字
  4. vue实现表格的‘模板下载‘功能
  5. 【学习笔记】Unity3d C# 常用标签[xxx]
  6. WPS编辑时不小心被云端版本覆盖恢复方法
  7. 习而学的软件工程教育 之 思考
  8. 运维管理软件中的精益思想
  9. 微信小程序实现单选、全选功能
  10. Android小说阅读器,追书神器API接口