모든 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
.
답변
여기에 다른 답변과 비슷하지만 다시 쓰기에서 http를 $ scheme으로 변경하십시오.
server {
listen 80;
server_name test.com;
rewrite ^ $scheme://www.test.com$request_uri? permanent;
}
기본 서버 블록 server_name 변수를 다음과 같이 편집하십시오.
server_name www.test.com;
www.test.com을 test.com으로 리디렉션하려면이 작업을 수행해야합니다.
답변
먼저 HTTP rewrite 모듈과 함께 Nginx를 설치했는지 확인하십시오. 이것을 설치하려면 pcre-library가 필요합니다
위에서 언급했거나 이미 가지고 있다면 nginx 서버 블록에 아래 코드를 추가하십시오.
if ($host !~* ^www\.) {
rewrite ^(.*)$ http://www.$host$1 permanent;
}
당신이 사용할 수있는 모든 요청에서 www를 제거하려면
if ($host = 'www.your_domain.com' ) {
rewrite ^/(.*)$ http://your_domain.com/$1 permanent;
}
서버 블록은 다음과 같습니다
server {
listen 80;
server_name test.com;
if ($host !~* ^www\.) {
rewrite ^(.*)$ http://www.$host$1 permanent;
}
client_max_body_size 10M;
client_body_buffer_size 128k;
root /home/test/test/public;
passenger_enabled on;
rails_env production;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
답변
이것은 “nginx redirect”에 대한 Google의 인기입니다. 여기에 단일 위치를 리디렉션하려는 경우 :
location = /content/unique-page-name {
return 301 /new-name/unique-page-name;
}