nginx重写规则没有结果

时间:2016-03-18 23:04:49

标签: mod-rewrite nginx url-rewriting rewrite nginx-location

我尝试使用nginx的重写来更改像

这样的网址
middleware: function (connect, options) {
    var optBase = (typeof options.base === 'string') ? [options.base] : options.base;
                    return [require('connect-modrewrite')(['!(\\..+)$ / [L]'])].concat(
                        optBase.map(function(path){ return connect.static(path); }));
                },
                keepalive: true,
                port: 4000,
                base: '.',
                hostname: 'localhost',
                debug: true,
                livereload: true,
                open: true
            }
        }
    },

    <domain>/index.php?mode=a/b

但我的尝试没有结果。

    <domain>/a/b 

它出了什么问题?

1 个答案:

答案 0 :(得分:0)

有很多问题:

  • 所有nginx URI都有一个前导/(与Apache不同)
  • .php文件将在其他位置处理(可能是location ~ \.php$,因此break应替换为last

试试这个:

location / {
    rewrite ^/(.*)$ /index.php?mode=$1 last;
}

有关详细信息,请参阅this document