nginx利用location匹配url中?号后的参数

nginx利用location匹配url中?号后的参数

http://www.baidu.com/index.php?a=1&b=2
location能匹配到url,但是匹配不到url后面的参数,例如:?a=1&b=2

需求:
访问地址:
https://www.aposoft.com/all-apowersoft/?from=edm

开发要求可不可以只是这个完整地址
https://www.aposoft.com/all-apowersoft/?from=edm 跳转到404,然后https://www.aporsoft.com/all-apowersoft 这个页面能正常访问
https://www.aposoft.com/all-apowersoft/?from=abc 其它只要不是edm的参数值都可以正常访问

调试配置:

location / {
       if ($request_uri ~* ^/all-apowersoft/\?from\=edm$) {
       return 404;
}

测试:
http://dev-aposoft-com.aoscdn.com/all-aposoft/?from=edm 报404
http://dev-aposoft-com.aoscdn.com/all-aposoft/?from=ed 报200
http://dev-aposoft-com.aoscdn.com/all-aposoft/?from=abc 报200

原文地址:https://blog.51cto.com/zhongliang/2447362

时间: 2024-10-24 12:22:02

nginx利用location匹配url中?号后的参数的相关文章

php获取url井号后的参数(描点#后参数)

有时候我们需要获取url井号后的参数(即描点#后的参数),如下面的链接:http://www.xindingyue.com/example/#comment-1314 现在要获取#号后面的comment-1314,如何通过php获取呢? 首先声明php是无法直接获取的,因为这是向浏览器客户端发送的参数,在服务端压根就不接受这样的参数,$_SERVER["REQUEST_URI"]变量里是不会包含#号后面的东西的,所以无法像我们平时用php处理url那样了,那到底如何获取呢? 这是向客户

Nginx使用Location匹配URL进行伪静态

基础知识 Nginx location 配置语法 1. location [ = | ~ | ~* | ^~ ] uri { ... } 2. location @name { ... } location 配置可以有两种配置方法 1.前缀 + uri(字符串/正则表达式) [email protected] + name 前缀含义 = :精确匹配(必须全部相等) ~ :大小写敏感 ~* :忽略大小写 ^~ :只需匹配uri部分 @ :内部服务跳转 Location 基础知识 1.locatio

Nginx之location 匹配规则详解

Nginx之location 匹配规则详解 关于一些对location认识的误区 1. location 的匹配顺序是"先匹配正则,再匹配普通". 矫正: location 的匹配顺序其实是"先匹配普通,再匹配正则".我这么说,大家一定会反驳我,因为按"先匹配普通,再匹配正则"解释不了大家平时习惯的按"先匹配正则,再匹配普通"的实践经验.这里我只能暂时解释下,造成这种误解的原因是:正则匹配会覆盖普通匹配(实际的规则,比这复杂,

url中#号的作用

url中#号的作用就是本页面位置跳转 比如这个url地址:http://www.aaaaa.com/index.html?ad=34&m=c#red red就是index.html页面的依哥位置 浏览器读取这个URL后,会自动将red位置滚动至可视区域 位置定义方式 <a name="red">cdsc</a>  或者 <div id="red">abc</div> 常会看到一些简单的网站的导航菜单都是在本页面

//获取url中&quot;?&quot;符后的字串

//获取url中"?"符后的字串 function getParamByUrl(url) {    var theRequest = new Object();    var index = url.indexOf("?");    if (index != -1) {       var str = url.substr(index + 1);       strs = str.split("&");       for(var i =

如何用js获取浏览器URL中查询字符串的参数

首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主机名和当前的URL的端口号.本博客首页返回www.cnblogs.com hostname:设置或返回当前URL的主机名.本博客首页返回www.cnblogs.com hash:设置或返回从井号(#)开始的URL(锚).本博客首页返回 空 pathname:设置或返回当前URL的路径部分.本博客首页

js获取url传递参数,js获取url?号后面的参数

方法一.正则表达式 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } 方法二.

【前端】提取URL中的各个GET参数

1 /**************************** 2 * 有这样一个URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e, 3 * 请写一段JS程序提取URL中的各个GET参数(参数名和参数个数不确定), 4 * 将其按key-value形式返回到一个json结构中, 5 * 如{a:'1', b:'2', c:'', d:'xxx', e:undefined}. 6 ******************

c#获取url中的查询字符串参数

/// <summary> /// 获取url中的查询字符串参数 /// </summary> public static NameValueCollection ExtractQueryParams(string url) { int startIndex = url.IndexOf("?"); NameValueCollection values = new NameValueCollection(); if (startIndex <= 0) ret