Muszę przekierowywać każde żądanie http://test.com do http://www.test.com . Jak to zrobić.
W bloku serwera próbowałem dodać
rewrite ^/(.*) http://www.test.com/$1 permanent;
ale w przeglądarce mówi
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.
jak wygląda mój blok serwera
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;
}
}
redirect
nginx
url-rewriting
Amal Kumar S.
źródło
źródło
Odpowiedzi:
Najlepszym sposobem na zrobienie tego, co chcesz, jest dodanie kolejnego bloku serwera:
I edytuj zmienną nazwa_serwera bloku głównego serwera w następujący sposób:
Ważne : nowy
server
blok to właściwy sposób, aby to zrobić,if
jest zły .if
Jeśli to możliwe, musisz zamiast tego używać lokalizacji i serwerów .Rewrite
bywa też zły , więc zastąpiłem goreturn
.źródło
return 301 http://wwww.test.com$request_uri;
zamiast przepisywania.return
zamiastrewrite
. Zobacz dokumentacjęredirect
wówczasmain server
blok lubmain server
blok wtedyredirect
? Ponieważ mam ten sam problem, stackoverflow.com/questions/35451929/…301
przekierowanie w porównaniu z302
. Możesz utknąć z przechowywanym w pamięci podręcznej trwałym przekierowaniem, co sprawia, że zmiana ustawień dla klientów, którzy już uzyskali dostęp do adresu URL, jest bardzo kłopotliwa. (Wiem, że OP poprosił o301
, ale upewnij się, że naprawdę tego chcesz.)Podobna do innej odpowiedzi tutaj, ale zmień http w schemacie przepisywania na $ w następujący sposób:
I edytuj zmienną nazwa_serwera bloku głównego serwera w następujący sposób:
Musiałem to zrobić, aby przekierować www.test.com na test.com.
źródło
Najpierw upewnij się, że zainstalowałeś Nginx z modułem przepisywania HTTP. Aby to zainstalować, potrzebujemy biblioteki pcre
Jak zainstalować bibliotekę pcre
Jeśli powyższe jest wykonane lub jeśli już je masz, po prostu dodaj poniższy kod do bloku serwera nginx
Aby usunąć www z każdego żądania, możesz użyć
więc twój blok serwera będzie wyglądał
źródło
To najpopularniejszy hit w Google dotyczący „przekierowania nginx”. Jeśli przyszedłeś tutaj, chcąc przekierować jedną lokalizację:
źródło