我已经看到了一些方法来重写$request_uri
并添加index.html
,就当该特定文件在文件系统中存在,像这样删除/index.html:
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
,但我想知道如果对面是可以实现的:
即当有人请求http://example.com/index.html
,他们重定向到http://example.com
由于nginx的正则表达式是Perl兼容的,我想小号像这样:
if ($request_uri ~* "index\.html$") {
set $new_uri $request_uri ~* s/index\.html//
rewrite $1 permanent;
}
但它主要是猜测,是否有任何好的文档描述nginx modrewrite?
嗨,这看起来不错,但你也解释(对我们新手)为什么新的解决方案更好地工作? – 2013-06-25 00:12:13
这是nginx配置中的一个特点。我经验地发现(我可能错了),没有办法以相对的方式引用根的'/'页面。所以我被委托以绝对的方式提及它,为此我们必须提供完整的方案和主机名(域名)。 这个小黑客让我们可以参考域名而不必对其进行硬编码。我发现它特别有用,因为我正在开发和使用该站点的单独登台和Vagrant(虚拟机)版本。 – 2013-07-03 21:03:14