【发布时间】:2015-01-22 09:45:20
【问题描述】:
我使用的是 Nginx 1.6.2。我读到 if () 是邪恶的,使用它不好,所以我需要一些帮助,因为如果不使用 if(),我将无法做我想做的事。我将发布我与 if 的规则,并会询问是否有人可以帮助我并告诉我如何不使用 if () 并使用其他东西并获得相同的结果。
# REDIRECT NON-WWW TO WWW.
if ($http_host != "www.site.eu") {
rewrite ^ http://www.site.eu$request_uri permanent;
}
# REMOVE INDEX FILES FROM URL FOR SEO PURPOSE.
if ($request_uri ~ "/index.php") {
rewrite ^ /$1 permanent;
}
# REMOVE ANY MULTIPLE SLASHES IN THE URL.
if ($request_uri ~* "\/\/") {
rewrite ^/(.*) $scheme://$host/$1 permanent;
}
【问题讨论】:
-
第一个块应该被单独的服务器块替换。 99% 的情况下不需要第二个和第三个
-
@Alexey 十 - 你是什么意思,哪个第一个块应该被单独的服务器块替换,你所说的单独的服务器块是什么意思,服务器 {}?由于我不明白您的意思,是否可以给我正确的规则?
-
您的第一条规则应按照 Alexey Ten 的建议进行处理。第二条规则有点无意义,如果真的需要,需要在 Alexey 的“正常配置”服务器块下进行重组。第三条规则由 nginx 自动处理,根本不需要。
标签: nginx configuration