nginx位置将/之后的所有内容重写为root

时间:2018-07-11 21:02:20

标签: nginx url-rewriting

假设我有example.com,我想在/之后重新写入所有内容,例如,example.com/one/two?whatever=foo应该回到example.com

我尝试了以下操作:

location = / {
    index  index.html;
}

location / {
    rewrite ^ / permanent;
}

但是这给了我太多重定向错误。我可以使用正则表达式指定所有允许/不允许的字符,但这会使它太难看/太长/太复杂了。

为什么精确匹配不能分辨出差异?

1 个答案:

答案 0 :(得分:1)

您使用index指令执行从//index.html的内部重写。有关详细信息,请参见this document

nginx然后重新开始搜索匹配的location,这会导致循环。

您可以为/index.html URI添加完全匹配,例如:

location = /index.html { }

如果index.html提取本地资源(例如css,js,图像),则还需要专门处理这些URI。