我遇到了这样的情况:
考虑一下,我有两篇文章:
我在 nginx 中有一个重定向:
location /old-article.html {
return 301 http://$server_name/new-article.html;
}
我的目的是让来自我网站之外的人访问旧文章,然后他们将被重定向到新文章。但是当他们使用我的网站时,他们访问旧文章,他们将被带到完全相同的旧文章。
但是通过上面 nginx 中的重定向,我让访问者只转到新文章,就像一个循环一样。
这可以用 nginx 来实现吗?如果可以,我该怎么做?
多谢!
答案1
这可以通过使用 nginx 功能来实现。在级别中map
定义以下内容:map
http
map $http_referer $redirectold {
default 1;
"~^http://example.com/" 0;
}
在主配置中:
server {
if ($redirectold) {
rewrite ^/old-article.html http://example.com/new-article.html permanent;
}
}