nginx重写URL

时间:2012-11-26 09:32:22

标签: url-rewriting nginx

我想重写以下网址:

index.php?SOMETHING=VALUE

作为

/SOMETHING/VALUE

我对nginx重写没有经验,所以任何帮助都会受到赞赏。

由于

1 个答案:

答案 0 :(得分:1)

我已经找到了解决问题的方法:

location /index.php {
    if ( $args ~ "(?<PATH1>.*)=(?<PATH2>.*)" ) {
        rewrite ^ /${PATH1}/${PATH2}? last;
    }
}

说明:

  • if ( $args ~ "(?<PATH1>.*)=(?<PATH2>.*)" ):从URL参数中捕获两个相关部分,将值存储在变量PATH1PATH2
  • rewrite ^表示“重写整个URI”
  • /${PATH1}/${PATH2}正在构建新URI
  • 尾随?通知nginx您不想附加原始网址参数
  • last告诉nginx在重写后继续遵循规则