我知道这一定已经得到了回答,但是我已经搜索了很长时间,找不到答案。我猜只是没有找对地方,也许有人可以帮助我。
基本上我在非标准端口上通过 SSL 运行 phpmyadmin,在本例中为 12345。
现在我已经https://example.com:12345
设置好了,一切正常。现在我想添加仅键入http://example.com:12345
并重定向到 https:// 的功能。
我假设以下内容会起作用,但事实并非如此。
server {
listen 12345;
server_name php.myadmin.com;
if ( $scheme = http ) {
rewrite ^ https://php.myadmin.com:12345$request_uri? redirect;
}
root /var/www/php;
ssl on;
[....]
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个400 bad request
.
现在,在发布答案之前,请确保仔细查看重定向表单。检查下面链接中的陷阱。
https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#taxing-rewrites
此外,如果这甚至可以在没有 if 语句的情况下完成,那就太好了:
https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#using-if