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