如果是邪恶的-Nginx
我正在使用nginx1.6.2。我读到if()是邪恶的,使用它是不好的,所以我需要一些帮助,因为如果不使用if(),我无法做我想做的事情。我将发布关于if的规则,并询问是否有人可以帮助我,告诉我如何不使用if()并使用其他方法,从而获得相同的结果如果是邪恶的-Nginx,nginx,configuration,Nginx,Configuration,我正在使用nginx1.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; } # REM
# 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;
}
它说有些情况是可以的。请看下面的报价:
如果在适当的位置,唯一可以在室内完成的100%安全的事情
背景是:
返回。。。;重写。。。最后
在介绍的最后,有一个例子,它还具有一个重写命令。所以你的代码看起来也不错
编辑:你也应该看看。它说有些情况是可以的。请看下面的报价:
如果在适当的位置,唯一可以在室内完成的100%安全的事情
背景是:
返回。。。;重写。。。最后
在介绍的最后,有一个例子,它还具有一个重写命令。所以你的代码看起来也不错
编辑:您还应该看看。第一条规则应该用单独的服务器块替换
server {
listen 80 default_server;
return 301 http://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
# normal config
}
通常不需要使用其他
if
s。只需不使用index.php生成链接,您就不需要删除它。第一条规则应替换为单独的服务器块
server {
listen 80 default_server;
return 301 http://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
# normal config
}
通常不需要使用其他if
s。只要不使用index.php生成链接,您就不需要删除它。您可以替换此块
# REMOVE INDEX FILES FROM URL FOR SEO PURPOSE.
if ($request_uri ~ "/index.php") {
rewrite ^ /$1 permanent;
}
用这个
location ~ ^/index.php/(.*[^/])$ { return 301 $scheme://$host/$1/$is_args$args; }
location ~ ^/index.php/(.*)/$ { return 301 $scheme://$host/$1/$is_args$args; }
我也不认为您需要担心double//的最后一条规则,因为nginx默认情况下会在匹配位置块之前自动处理该规则您可以替换该块
# REMOVE INDEX FILES FROM URL FOR SEO PURPOSE.
if ($request_uri ~ "/index.php") {
rewrite ^ /$1 permanent;
}
用这个
location ~ ^/index.php/(.*[^/])$ { return 301 $scheme://$host/$1/$is_args$args; }
location ~ ^/index.php/(.*)/$ { return 301 $scheme://$host/$1/$is_args$args; }
我也不认为您需要担心double//的最后一个规则,因为nginx默认情况下会在匹配位置块之前自动处理该规则第一个块应该由单独的服务器块替换。99%的人不需要第二个和第三个cases@Alexey十-你认为mena是什么,第一个块应该被separete服务器块替换,你所说的separete服务器块,server{}是什么意思?我不明白你的意思,你能给我正确的规则吗?你的第一条规则应该按照Alexey Ten的建议来处理。第二条规则有点毫无意义,如果真的需要,需要在Alexey的“normal config”服务器块下重新构造。第三个规则由nginx自动处理,完全不需要。第一个块应该由单独的服务器块替换。99%的人不需要第二个和第三个cases@Alexey十-你认为mena是什么,第一个块应该被separete服务器块替换,你所说的separete服务器块,server{}是什么意思?我不明白你的意思,你能给我正确的规则吗?你的第一条规则应该按照Alexey Ten的建议来处理。第二条规则有点毫无意义,如果真的需要,需要在Alexey的“normal config”服务器块下重新构造。第三条规则由nginx自动处理,完全不需要。谢谢你,最后一条规则是需要的,因为如果它不在那里,double//仍然会出现。出于某些原因,nginx不会像您所说的那样自动删除它。为此,需要最后一条规则,因为如果它不在那里,double//仍然会出现。出于某些原因,nginx不会像您所说的那样自动删除它。