我需要将每个http://test.com请求重定向到http://www.test.com。如何才能做到这一点。
在服务器块中,我尝试添加
rewrite ^/(.*) http://www.test.com/$1 permanent;
但在浏览器中却说
The page isn't redirecting properly
Firefox has detected that the server is redirecting the request for
this address in a way that will never complete.
我的服务器块看起来像
server {
listen 80;
server_name test.com;
client_max_body_size 10M;
client_body_buffer_size 128k;
root /home/test/test/public;
passenger_enabled on;
rails_env production;
#rewrite ^/(.*) http://www.test.com/$1 permanent;
#rewrite ^(.*)$ $scheme://www.test.com$1;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
最好的方法是添加另一个服务器块:
server {
#implemented by default, change if you need different ip or port
#listen *:80 | *:8000;
server_name test.com;
return 301 $scheme://www.test.com$request_uri;
}
并按如下所示编辑主服务器块server_name变量:
server_name www.test.com;
重要提示:新server
块是实现此目标的正确方法,if
是邪恶的。您必须使用位置和服务器,而不是if
尽可能使用。Rewrite
有时也是邪恶的,所以用return
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句