Nginx 如何从目录(从该站点的url)重定向到外部站点
在我的许多网站上,有通过内部目录进行重定向的传统。看起来,从site.ru到Yandex的外部链接如下所示: 此url将重定向到301 在apache中,我在.htaccess中执行此操作:Nginx 如何从目录(从该站点的url)重定向到外部站点,nginx,url,redirect,nginx-config,Nginx,Url,Redirect,Nginx Config,在我的许多网站上,有通过内部目录进行重定向的传统。看起来,从site.ru到Yandex的外部链接如下所示: 此url将重定向到301 在apache中,我在.htaccess中执行此操作: RedirectMatch 301 /out/(.*)$ 1. 尝试为nginx重写,请执行以下操作: rewrite /out/(.*) $1 permanent; 但它将重定向到,而不是 我将此配置添加到my.conf(我在/etc/nginx中创建了此文件)并包含/etc/nginx/my.co
RedirectMatch 301 /out/(.*)$ 1.
尝试为nginx重写,请执行以下操作:
rewrite /out/(.*) $1 permanent;
但它将重定向到,而不是
我将此配置添加到my.conf(我在/etc/nginx中创建了此文件)并包含/etc/nginx/my.conf;»(当然是在服务器{}中)在我的站点的所有conf文件中
请帮我配置一下,我搞不清楚。(部分问题是
重写
使用了一个标准化URI,它将多个连续的/
折叠成一个/
。最好使用存储在$request\u URI
中的原始请求
一种可能的解决方案是使用map
提取嵌入的URL。例如:
map $request_uri $redirect {
default 0;
~^/out/(?<out>.*)$ $out;
}
server {
...
if ($redirect) { return 301 $redirect; }
...
}
我想这样做只是包括我的.conf文件的网站配置。如果我没有找到其他解决方案,我会尝试你的。
if ($request_uri ~ ^/out/(.*)$) { return 301 $1; }