nginx 永久移动未被浏览器注册

nginx 永久移动未被浏览器注册

我们有一个“测试版”网站,http://beta.domain.com, 尽管http://www.domain.com包含启动页面。现在我们删除了启动页面,并将网站移至实际域。我在 nginx 中设置了永久重定向来处理这个问题,但不知何故它无法正确重定向。

server {
    server_name beta.domain.com;

    rewrite ^/(.*) http://www.domain.com/$1 permanent;

}

当我使用 curl 测试它时,它似乎按预期工作。

$ curl -v beta.domain.com/page
> GET /page HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: beta.domain.com
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Server: nginx/1.2.1
< Date: Tue, 16 Jul 2013 20:37:03 GMT
< Content-Type: text/html
< Content-Length: 184
< Connection: keep-alive
< Location: http://www.domain.com/page
< 
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.2.1</center>
</body>
</html>

http://beta.domain.com/page但是,当我在 Firefox 中转到 时,我被重定向到http://www.domain.com而不是http://www.domain.com/page。如果我在 Firefox 中直接转到http://www.domain.com/page,则一切正常。

我想通过适当的永久重定向来修复此问题以实现 SEO,但无法找出此问题的原因。我们正在使用在 Apache/ModWSGI 上运行的 Python/Django 部署,并使用 nginx 作为前端服务器。

谢谢!

答案1

尝试使用return反而。

server {
    listen [::]:80;
    server_name beta.example.com;
    return 301 $scheme://www.example.com$request_uri$is_args$args;
}

答案2

与我的服务器上的一些重写相比,您可能有一些不必要的斜线

尝试重写^(.*) scheme://www.domain.com$1 永久;

相关内容