我正在尝试重定向特定 URL,例如:
http://www.domain.com/cadena-de-metas
我通过 /sites-available/ 中的配置文件执行此操作
if ( $request_filename ~ cadena-de-metas/ ) {
rewrite ^ https://some-other-url.com? permanent;
}
这可行,但遗憾的是它也会重定向此 URL:
http://www.domain.com/uploads/descarga-cadena-de-metas.jpg
我该如何预防?
答案1
避免使用 if 语句,它们对性能不利。尝试以下方法:~* 表示不区分大小写的正则表达式匹配,而正则表达式可以是文字。如果它不起作用,请告诉我,它只需要进行一些小调整 - 不确定你是否需要引号
server {
server_name example.com www.example.com;
location ~* "^/cadena-de-metas" {
return 301 https://some-other-url.com;
}
}
如果您希望它自动调整为 http / https,您的返回结果也可以是这样的
return 301 $scheme://some-other-url.com;
如果你想重定向到同一服务器上的另一个位置,那么可以这样做
return 301 $scheme://$host/subdirectory;
注意::使用 302 重定向进行所有测试,因为它们未被缓存,当您对设置方式满意时,请更改为 301 重定向。
您可以以不同的方式执行从非 www 到域的 www 的通用重定向,但您还没有询问,所以我不会发布该内容。
除了重定向之外,您还可以执行 proxy_pass,它将从另一个位置获取内容并将其显示在该 URL 上。