我试图从mydomain.comredirect到www.mydomain.com ..但是,nginx正在重写位置标头为$主机。
server{ server_name mydomain.de; set $root /srv/www/mydomain.de; listen 8080; root $root; index index.html index.htm; location / { rewrite ^(.*) http://www.google.de$1 permanent; } add_header Cache-Control private; } server_tokens off; proxy_buffering on; proxy_buffer_size 8k; proxy_buffers 2048 8k; client_max_body_size 100M; client_body_buffer_size 100M; server_names_hash_max_size 1024;
这就是我的服务器configuration的样子。 但我没有redirect到谷歌,但坚持在redirect循环。 我在另一个服务器主机(www.mydomain.de)中有很多重写规则,但是它们似乎没有关系,因为这个虚拟主机甚至没有被使用。
Error.log的内容如下所示:
2012/10/24 17:26:26 [notice] 2244#0: *175 "^(.*)" matches "/", client: 127.0.0.1, server: mydomain.de, request: "GET / HTTP/1.1", host: "mydomain.de" 2012/10/24 17:26:26 [notice] 2244#0: *175 rewritten redirect: "http://www.google.de/", client: 127.0.0.1, server: mydomain.de, request: "GET / HTTP/1.1", host: "mydomain.de"
有谁知道如何解决我的问题? 我完全不知道怎么回事。谢谢。
编辑:甚至没有这个作品:
server{ server_name test.prod-web.hrm; listen 8080; location / { rewrite ^(.*) http://www.google.de$1 permanent; } }
我根本不会使用rewrite
。
相反,试试这个:
return 301 $scheme://www.example.com$request_uri$is_args$args;
如果失败了,您的环境中可能还有其他问题。
只需要为重写创build一个额外的服务器:
server { listen 192.168.1.234:80; server_name example.com; # your domain name rewrite ^/(.*) http://www.example.com/$1 permanent; }
那真的应该是这样。 记住你缺乏的锋线