【问题标题】:How to change $request_uri in nginx?如何在 nginx 中更改 $request_uri?
【发布时间】:2013-09-23 01:50:51
【问题描述】:

我们从$_SERVER['REQUEST_URI'] 而非$_GET$_POST 获取信息。

我想定义$request_uri 以将/example 更改为/module/controller/action。请注意,我不想触发重定向。

我尝试了下面的代码来执行此操作,但它不起作用。

location /example {
    rewrite /module/controller/action;  
}

【问题讨论】:

  • rewrite ^/example/ /module/controller/action; 不行吗? (直接在server 内而不在location 内)

标签: url-rewriting nginx


【解决方案1】:
set $request_url $request_uri;
if ($request_uri ~ ^/example(.*)$ ) {
    set $request_url /module/controller/action;
}


location ~ \.php$ {

    fastcgi_pass   127.0.0.1:9090;

    #include        fastcgi.conf;
    fastcgi_param  REQUEST_URI        $request_url;
    #fastcgi_param  REQUEST_URI        $request_uri;
}

【讨论】:

  • @muratsac,我更新了 anwser,从 rewirte 指令中删除了 redirect
  • 你是把请求传给fastcgi,然后用php处理请求吗?
  • @MichaelHampton,他想更改 fastcgi parameter REQUEST_URI` 。你确定try_files 可以做到吗?如果是,您可以发布一个示例作为答案吗?谢谢。
  • @MichaelHampton try_files 不会改变 $request_uri,这是这里需要做的事情
  • 我不明白这如何改变 request_uri,你只是创建了一个变量并将其设置为 request_uri
猜你喜欢
  • 2016-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多