8个答案
服务器{ 服务器名称.mydomain.example; 重写^ http://www.adifferencedomain.example $request_uri? 永久的; }
服务器{ 服务器名称.mydomain.example; 返回301 http://www.adifferencedomain.example $request_uri; }
-
1 -
2 -
三 -
7 -
7 这个? 重写结束时,告诉nginx不要附加原始查询字符串。因为 $request_uri 已经有了查询字符串,无需再次追加。 这个 返回301 语法更新了,这两种方法在行为上应该没有区别,但当我最初回答这个问题时,许多发行版没有所需的版本,所以我选择了更安全的语法。 – 科尔比杰克 评论 2014年7月23日11:49
服务器{ 服务器名称.mydomain.example; 返回301 http://www.adifferencedomain.example $request_uri; }
服务器{ 服务器名.domain.com; 返回302$ scheme://forwarded-domain.com ; }
-
1 -
4 不,这个例子没有做到这一点,@Mark。但我想你可以把前面的答案混合起来,得出这样的结果: 返回302$ scheme://forwarded-domain.com $request_uri; – 罗宾·范巴伦 评论 2015年1月5日15:12 -
顺便提一下,在许多情况下,您可能只需要重定向到https,而不是保留方案(即使用https而不是$scheme)。 这与协议相关链接现在被视为已弃用的原因相同- paulirish.com/2010/the-protocol-relative-url – 市长 评论 2015年4月29日8:36 -
服务器{ if($host=mydomain.example){ 返回301 http://www.adifferencedomain.example ; } }
-
在Nginx上使用“if”语句时需要小心( nginx.com/resources/wiki/start/topics/depth/ifisevil ). 在这种情况下,您只需使用“server_name mydomain.com”即可。 – 马蒂 评论 2020年6月4日1:54 -
重写^ http://www.RedirectToThisDomain.example(重定向到此域) $request_uri? 重定向;
重写^ http://www.RedirectToThisDomain.example(重定向到此域) $request_uri? 永久的;
服务器{ 服务器名称www.example.com; 重写^ http://www.RedictToThisDomain.example(重定向到此域示例) $request_uri? 重定向; }