type funciona content php redirect header http-status-code-301

funciona - Redireccionamiento de encabezado PHP 301-¿Cuáles son las implicaciones?



header location php no funciona (5)

Tengo domain.com . Si el usuario ha iniciado sesión, debería cargar automáticamente domain.com/option-X, donde X es una elección predefinida del usuario.

Entonces, hago esto en la parte superior de index.php:

header("Location: /option-X");

Pero, si el usuario no está conectado, simplemente elijo automáticamente la primera opción como esta:

header("HTTP/1.1 301 Moved Permanently"); header("Location: /option-a");

Entonces, tengo dos preguntas con respecto a las implicaciones de hacerlo:

  1. Dado que los rastreadores de los motores de búsqueda no iniciarán sesión, siempre obtendrán domain.com/option-a . ¿Les afecta que tenga un encabezado 301?
  2. ¿Cuál podría ser la carga de la CPU del servidor para hacer esos redireccionamientos? No sé cómo hacer una prueba de eso. El sitio actual (que no tiene redirecciones) tiene aproximadamente 100 visitas diarias.

Asegúrese de que die() después de su redirección, y asegúrese de hacer su redirección LO ANTES POSIBLE mientras se ejecuta su secuencia de comandos. Se asegura de que no se desperdicien más consultas de bases de datos (si acaso). Ese es el único consejo que puedo darte

Para los motores de búsqueda, 301 es el mejor código de respuesta


El efecto del 301 sería que los motores de búsqueda indexarán / opción-a en lugar de / opción-x. Lo cual es probablemente una buena cosa ya que / option-x no es alcanzable para el índice de búsqueda y, por lo tanto, podría tener un efecto positivo en el índice. Solo si usa esto sabiamente ;-)

Después del redireccionamiento, ponga exit (); para detener el resto del script para ejecutar

header("HTTP/1.1 301 Moved Permanently"); header("Location: /option-a"); exit();


Esta es mejor:

<?php //* Permanently redirect page header("Location: new_page.php",TRUE,301); ?>

Solo una llamada, incluido el código 301. Observe también la ruta relativa al archivo en el mismo directorio (no "/dir/dir/new_page.php", etc.), que todos los navegadores modernos parecen admitir.

Creo que esto es válido desde PHP 5.1.2, posiblemente antes.


Los motores de búsqueda como 301 redirigen mejor que un 404 o algún otro tipo de redirección del lado del cliente, no hay preocupaciones allí.

El uso de la CPU será mínimo, si quieres ahorrar aún más ciclos, podrías intentar manejar la redirección en apache usando htaccess, entonces php ni siquiera tendrá que involucrarse. Si desea cargar la prueba de un servidor, puede usar ab que viene con apache, o httperf si está buscando una herramienta de prueba más robusta.


Solo un consejo: usar http_response_code es mucho más fácil de recordar que escribir el encabezado completo:

http_response_code(301); header(''Location: /option-a''); exit;