Ich muss jede http://test.com Anfrage an http://www.test.com umleiten . Wie kann das gemacht werden?
Im Serverblock habe ich versucht hinzuzufügen
rewrite ^/(.*) http://www.test.com/$1 permanent;
aber im Browser heißt es
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.
Mein Serverblock sieht aus wie
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.
quelle
quelle
Antworten:
Der beste Weg, um das zu tun, was Sie wollen, ist das Hinzufügen eines weiteren Serverblocks:
Bearbeiten Sie die Variable server_name Ihres Hauptserverblocks wie folgt:
Wichtig : Neuer
server
Block ist der richtige Weg,if
ist böse . Sie müssen Standorte und Server verwenden, anstattif
wenn dies möglich ist.Rewrite
ist manchmal auch böse , also ersetzt es durchreturn
.quelle
return 301 http://wwww.test.com$request_uri;
anstelle des Umschreibens beenden .return
anstelle vonrewrite
. Siehe docsredirect
dann dermain server
block odermain server
block dann dasredirect
? Weil ich das gleiche Problem habe, stackoverflow.com/questions/35451929/…301
Weiterleitung gegen die302
. Möglicherweise bleibt eine zwischengespeicherte permanente Weiterleitung hängen, was es sehr mühsam macht, Ihre Einstellungen für Clients zu ändern, die bereits auf eine URL zugegriffen haben. (Ich weiß, dass der OP nach einem gefragt hat301
, aber seien Sie sicher, dass Sie das wirklich wollen.)Ähnlich wie bei einer anderen Antwort hier, aber ändern Sie das http beim Umschreiben in $ Schema wie folgt:
Bearbeiten Sie die Variable server_name Ihres Hauptserverblocks wie folgt:
Ich musste dies tun, um www.test.com zu test.com umzuleiten.
quelle
Stellen Sie zunächst sicher, dass Sie Nginx mit dem HTTP-Umschreibemodul installiert haben. Um dies zu installieren, benötigen wir eine PCRE-Bibliothek
So installieren Sie die PCRE-Bibliothek
Wenn die oben genannten Schritte ausgeführt wurden oder wenn Sie sie bereits haben, fügen Sie einfach den folgenden Code in Ihren Nginx-Serverblock ein
Um www von jeder Anfrage zu entfernen, die Sie verwenden können
So sieht Ihr Serverblock aus
quelle
Dies ist der Top-Hit bei Google für "Nginx Redirect". Wenn Sie hier angekommen sind und nur einen einzelnen Standort umleiten möchten:
quelle