我有一个已经将.00##
请求重定向到http
的Nginx服务器配置,但是我试图找出正确的方法来修改此代码或完全更改它以重定向{{1} }请求https
,并且在网址不包含后缀http
的情况下添加尾随斜杠。这些重定向还应确保尽管有重定向,查询参数仍然存在。我已经看到大多数针对类似问题的答案都将https
用作添加正斜杠的代码,但是我不确定如何使用它,以及是否应该在一个正斜杠上使用/
^/(.*)/$
。谁能帮我消除困惑?
nginx.config:
rewrite
目标:
if
答案 0 :(得分:1)
目标中的三个步骤分别以不同的方式执行。最好使用单独的server
块来实现第一步。您已经在问题中的第二步。第三步使用rewrite
语句。
例如:
server {
listen 8080 default_server;
return http://example.com$request_uri;
}
server {
listen 8080;
server_name example.com;
if ($http_x_forwarded_proto = "http") { return 301 https://$host$request_uri; }
rewrite ^(.*[^/])$ $1/ permanent;
...
}
现有查询字符串也将附加到重写的URL后面。有关详细信息,请参见this document。