Necesito redirigir cada solicitud de http://test.com a http://www.test.com . ¿Cómo se puede hacer esto?
En el bloque del servidor intenté agregar
rewrite ^/(.*) http://www.test.com/$1 permanent;
pero en el navegador dice
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.
mi bloque de servidor parece
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
fuente
fuente
Respuestas:
La mejor manera de hacer lo que quiere es agregar otro bloque de servidor:
Y edite su variable de bloque de servidor principal server_name de la siguiente manera:
Importante : Nuevo
server
bloque es la forma correcta de hacer esto,if
es malvado . Debe usar ubicaciones y servidores en lugar deif
si es posible.Rewrite
a veces también es malo , así que lo reemplazamos conreturn
.fuente
return 301 http://wwww.test.com$request_uri;
lugar de la reescritura.return
lugar de usarrewrite
. Ver documentosredirect
entonces elmain server
bloque omain server
bloque entonces elredirect
? Porque tengo el mismo problema, stackoverflow.com/questions/35451929/…301
redirección frente a302
. Podría estar atrapado con una redirección permanente en caché, lo que hace que sea muy problemático cambiar su configuración para clientes que ya han accedido a una URL. (Sé que el OP solicitó un301
, pero asegúrese de que eso es realmente lo que quiere.)Similar a otra respuesta aquí, pero cambie el http en la reescritura a $ esquema de la siguiente manera:
Y edite su variable de bloque de servidor principal server_name de la siguiente manera:
Tuve que hacer esto para redirigir www.test.com a test.com.
fuente
Primero asegúrese de haber instalado Nginx con el módulo de reescritura HTTP. Para instalar esto necesitamos tener pcre-library
Cómo instalar la biblioteca pcre
Si lo mencionado anteriormente está hecho o si ya lo tiene, simplemente agregue el código a continuación en su bloque de servidor nginx
Para eliminar www de cada solicitud, puede usar
para que su bloque de servidor se vea como
fuente
Este es el principal éxito en Google para "redirección nginx". Si llegaste aquí solo queriendo redirigir una sola ubicación:
fuente