nginx的变量问题"$1"是如何定义的

例1:rewrite^/(.*)$http://www.test.cn/$1last;例2:rewrite^/(.*)\.html$http://www.test.cn/... 例1:
rewrite ^/(.*)$ http://www.test.cn/$1 last;

例2:
rewrite ^/(.*)\.html$ http://www.test.cn/$1.html last;

例1和例2的跳转结果一样么?
$1在官方定义里到底被赋值的结果是什么?

为什么在例2中 $1的值是(.*)\.html 还是 (.*) 的内容? 这样跳转的话最后结果是不是就变成(.*)\.html.html了?
展开
 我来答
159丶光年
推荐于2016-10-23 · 知道合伙人金融证券行家
159丶光年
知道合伙人金融证券行家
采纳数:3138 获赞数:45002
我是一名在校大学生,每天都有时间上网,喜欢百度知道问答喜欢帮助别人,热爱生活。

向TA提问 私信TA
展开全部
 在upstream中使用nginx变量的方法
操作流程是:
1. 创建upstream数据结构

if (ngx_http_upstream_create(r) != NGX_OK) {
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}

2. 设置模块的tag和schema。schema现在只会用于日志,tag会用于buf_chain管理。

u = r->upstream;

ngx_str_set(&u->schema, "memcached://");
u->output.tag = (ngx_buf_tag_t) &ngx_http_memcached_module;

3. 设置upstream的后端服务器列表数据结构。

mlcf = ngx_http_get_module_loc_conf(r, ngx_http_memcached_module);
u->conf = &mlcf->upstream;

4. 设置upstream回调函数。在这里列出的代码稍稍调整了代码顺序。

u->create_request = ngx_http_memcached_create_request;
u->reinit_request = ngx_http_memcached_reinit_request;
u->process_header = ngx_http_memcached_process_header;
u->abort_request = ngx_http_memcached_abort_request;
u->finalize_request = ngx_http_memcached_finalize_request;
u->input_filter_init = ngx_http_memcached_filter_init;
u->input_filter = ngx_http_memcached_filter;

5. 创建并设置upstream环境数据结构。

ctx = ngx_palloc(r->pool, sizeof(ngx_http_memcached_ctx_t));
if (ctx == NULL) {
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}

ctx->rest = NGX_HTTP_MEMCACHED_END;
ctx->request = r;

ngx_http_set_ctx(r, ctx, ngx_http_memcached_module);

u->input_filter_ctx = ctx;

6. 完成upstream初始化并进行收尾工作。

r->main->count++;
ngx_http_upstream_init(r);
return NGX_DONE;
jinxingvenus
推荐于2018-02-28 · TA获得超过4790个赞
知道大有可为答主
回答量:2703
采纳率:64%
帮助的人:3143万
展开全部
结果不完全相同。
$1表示前面()之内的内容。
最后一个问题,结果变成一个.html
只匹配()里面的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
聚兴碳素
2015-07-22 · TA获得超过2.1万个赞
知道小有建树答主
回答量:2775
采纳率:70%
帮助的人:176万
展开全部
$1表示前面()之内的内容,结果变成一个.html
只匹配()里面的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式