redirectmatch redireccionar redireccionamientos redireccionamiento redireccion los entre diferencia cuál php

php - redireccionamientos - redireccionar http a https cpanel



301 o 302 redirección con PHP (6)

Estoy considerando usar el siguiente código durante la fase de lanzamiento de un sitio web para mostrarles a los usuarios una página de mantenimiento para que me muestren el resto del sitio.

¿Hay alguna manera de mostrar el 302 correcto cambio de dirección a los motores de búsqueda o debería buscar otro enfoque basado en .htaccess ?

$visitor = $_SERVER[''REMOTE_ADDR'']; if (preg_match("/192.168.0.1/",$visitor)) { header(''Location: http://www.yoursite.com/thank-you.html''); } else { header(''Location: http://www.yoursite.com/home-page.html''); };


¿Revisaste qué encabezado estás obteniendo? Porque deberías obtener un 302 con anterior.

Del manual: php.net/manual/en/function.header.php

El segundo caso especial es el encabezado "Ubicación:". No solo devuelve este encabezado al navegador, sino que también devuelve un código de estado REDIRECT (302) al navegador, a menos que el código de estado 201 o 3xx ya se haya configurado.

<?php header("Location: http://www.example.com/"); /* Redirect browser */ /* Make sure that code below does not get executed when we redirect. */ exit; ?>


De la php.net/manual/en/function.header.php PHP:

El segundo caso especial es el encabezado "Ubicación:". No solo devuelve este encabezado al navegador, sino que también devuelve un código de estado REDIRECT (302) al navegador, a menos que el código de estado 201 o 3xx ya se haya configurado.

entonces ya estás haciendo lo correcto.


El siguiente código emitirá un redireccionamiento 301.

header(''Location: http://www.example.com/'', true, 301); exit;


No creo que realmente importe cómo lo haces, desde PHP o htaccess. Ambos lograrán lo mismo.

Lo único que quiero señalar es si desea que los motores de búsqueda comiencen a indexar su sitio en esta fase de "mantenimiento" o no. De lo contrario , podría usar el código de estado 503 ("temporalmente abajo"). Aquí hay un ejemplo de htaccess:

RewriteEngine on RewriteCond %{ENV:REDIRECT_STATUS} !=503 RewriteCond %{REMOTE_HOST} ^192/.168/.0/.1 ErrorDocument 503 /redirect-folder/index.html RewriteRule !^s/redirect-folder$ /redirect-folder [L,R=503]

En PHP:

header(''Location: http://www.yoursite.com/redirect-folder/index.html'', true, 503); exit;

Con el código de redireccionamiento de PHP actual que está utilizando, el redireccionamiento es un 302 (predeterminado).


Para un 302 Found , es decir, un redireccionamiento temporal:

header(''Location: http://www.yoursite.com/home-page.html''); // OR: header(''Location: http://www.yoursite.com/home-page.html'', true, 302); exit;

Si necesita un redireccionamiento permanente, también conocido como: 301 Moved Permanently , haga lo siguiente:

header(''Location: http://www.yoursite.com/home-page.html'', true, 301); exit;

Para obtener más información, consulte el manual de PHP para la función de encabezado Doc . Además, no te olvides de llamar a la exit; cuando se usa el header(''Location: '');

Pero, teniendo en cuenta que está realizando un mantenimiento temporal (no desea que los motores de búsqueda indexen su página), se recomienda devolver un 503 Service Unavailable con un mensaje personalizado (es decir, no necesita ninguna redirección):

<?php header("HTTP/1.1 503 Service Unavailable"); header("Status: 503 Service Unavailable"); header("Retry-After: 3600"); ?><!DOCTYPE html> <html> <head> <title>Temporarily Unavailable</title> <meta name="robots" content="none" /> </head> <body> Your message here. </body> </html>


guarde este archivo en el mismo directorio que .htaccess

RewriteEngine on RewriteBase / # To show 404 page ErrorDocument 404 /404.html # Permanent redirect Redirect 301 /util/old.html /util/new.php # Temporary redirect Redirect 302 /util/old.html /util/new.php