我希望无论访问者/用户在主域名后的 URL 栏中输入什么路径,该请求都应转发到特定域。例如,无论用户输入 example.com 还是 example.com/garbage/characters,他都应被转发到https://example.com/somepath
请告诉我如何在 Nginx 中实现这一点。我尝试提供 server_name example.com/*,但没有成功。
答案1
通常你不会向前请求(这意味着反向代理、proxy_pass
指令和网站访问者继续向 Nginx 发出不安全的纯 http 请求),但指示网站访问者通过 https 发出新的、安全的请求,并使用重定向:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$servername$request_uri;
}
http://
这将保留您的网站访问者在其 Web 浏览器中输入的完整 URI,并有效地指示他们仅用替换 来重复请求https://
。
要始终重定向到特定主机名,例如始终重定向到并从请求中example.com
删除:将参数替换为主机名。www
http://www.example.com/some/path
$servername
example.com
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
类似地,您可以$request_uri
用特定路径替换以始终重定向到一个特定的 URI。
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com/some-new/landing/page.html;
}