Je dois rediriger chaque requête http://test.com vers http://www.test.com . Comment cela peut-il être fait.
Dans le bloc serveur, j'ai essayé d'ajouter
rewrite ^/(.*) http://www.test.com/$1 permanent;
mais dans le navigateur il dit
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.
mon bloc serveur ressemble à
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
la source
la source
Réponses:
La meilleure façon de faire ce que vous voulez est d'ajouter un autre bloc de serveur:
Et modifiez la variable nom_serveur de votre bloc de serveur principal comme suit:
Important : un nouveau
server
bloc est la bonne façon de faire cela,if
c'est mal . Vous devez utiliser des emplacements et des serveurs plutôt queif
si c'est possible.Rewrite
est parfois mal aussi , alors remplacé parreturn
.la source
return 301 http://wwww.test.com$request_uri;
au lieu de la réécriture.return
au lieu derewrite
. Voir la documentationredirect
puis lemain server
bloc ou lemain server
bloc puis leredirect
? Parce que j'ai le même problème, stackoverflow.com/questions/35451929/…301
redirection par rapport au302
. Vous pourriez être coincé avec une redirection permanente en cache, ce qui rend très difficile la modification de vos paramètres pour les clients qui ont déjà accédé à une URL. (Je sais que l'OP a demandé un301
, mais assurez-vous que c'est vraiment ce que vous voulez.)Similaire à une autre réponse ici, mais changez le http dans la réécriture en $ schéma comme ceci:
Et modifiez la variable nom_serveur de votre bloc de serveur principal comme suit:
J'ai dû faire cela pour rediriger www.test.com vers test.com.
la source
Assurez-vous d'abord que vous avez installé Nginx avec le module de réécriture HTTP. Pour l'installer, nous avons besoin de pcre-library
Comment installer la bibliothèque pcre
Si les éléments mentionnés ci-dessus sont effectués ou si vous les avez déjà, ajoutez simplement le code ci-dessous dans votre bloc serveur nginx
Pour supprimer www de chaque demande que vous pouvez utiliser
donc votre bloc serveur ressemblera à
la source
C'est le premier hit sur Google pour la "redirection nginx". Si vous êtes arrivé ici pour rediriger un seul emplacement:
la source