Quiere arrojar errores 404 cuando la URL contiene una determinada cadena – WordPress

5 minutos de lectura

Estoy administrando un blog de wordpress y quiero arrojar un error 404 cada vez que la URL contiene un patrón de cadena (ejemplo: si la URL contiene “esto no se desea”). Estaba pensando que podré agregar algo al archivo htaccess como: Redirigir “esto no es deseado” 404

¿Alguien puede ayudar? Simplemente no quiero que Google indexe páginas con este parámetro.

  • ¿Conseguiste encontrar la solución?

    -Michiel Pater

    14 de marzo de 2011 a las 9:48

Avatar de usuario de Michiel Pater
michiel pater

Si desea prohibir que Google indexe páginas, debe agregar un robots.txt archivo a la carpeta raíz de su sitio web.

A continuación, podría poner algo como esto en el archivo:

User-agent: *
Disallow: /thisisnotwanted

Supongo que desea prohibir la página de todos los motores de búsqueda, pero si solo desea prohibir Google, debe cambiar la primera línea a User-agent: Google.

Puede decirle a Google explícitamente que elimine los enlaces usando Herramientas para webmasters. Pueden pasar algunos días antes de que Google acepte su solicitud y elimine las páginas de su índice.

Para obtener más información, visite este sitio web:
Las páginas de robots web

  • Gracias gente por sus respuestas. Tengo esa entrada en robots.txt. Pero de alguna manera Google no los ha eliminado del índice. Me preguntaba si arrojar 404 ayudaría a sacar estas más de 2000 páginas del índice que Google rastreó (debido a un complemento que usé). Gracias nuevamente por sus sugerencias. Si tiene una sugerencia alternativa, hágamelo saber. Gracias.

    – Sameer

    14 de marzo de 2011 a las 9:02


Esto podría lograrse usando robots.txt, pero como está preguntando cómo lanzar la página 404 manualmente, aquí está:

<?php
if ( preg_match('/thisisnotwanted/i',$_SERVER["REQUEST_URI"]) ) {
    header("HTTP/1.0 404 Not Found - Archive Empty");
    require TEMPLATEPATH.'/404.php';
    exit;
}
get_header();
?>

Este fragmento de código es solo un ejemplo de cómo puede mostrar una página 404, y no debe usarse en “producción”, en su lugar, use robots.txt como sugirió Michiel Pater.

  • Gracias por las respuestas amigos. Ya tengo este patrón en el archivo robots.txt. De alguna manera, estas páginas siguen apareciendo en el índice. Dado que es difícil alimentar manualmente las herramientas para webmasters (para eliminar las direcciones URL, ya que no están en un directorio), estaba pensando que simplemente podía lanzar 404 y hacer que se eliminaran más rápido.

    – Sameer

    14 de marzo de 2011 a las 9:00

  • @Sameer: ​​Eso es correcto. Google no elimina instantáneamente las páginas de su índice. Bueno, eso explica mucho. Debe agregar esta información a su respuesta. Intenta usar el código de @poelinca también.

    -Michiel Pater

    14 de marzo de 2011 a las 9:04

  • El uso de este fragmento de código mostrará la página 404 incluso cuando un usuario solicita la página, no prueba si Google solicitó la página o no, por lo que, dado que nadie podría acceder a la página/publicación, sería más fácil simplemente hacer el la página/publicación ya no es pública desde wp-admin. Si necesita mostrar la página al usuario normal y no está indexada, entonces su única opción es usar robots.txt y esperar hasta que Google elimine las páginas/publicaciones de su índice, también asegúrese de que las publicaciones/páginas no estén dentro el xml que estás cargando en las herramientas para webmasters de Google.

    – Poelinca Dorín

    14 de marzo de 2011 a las 9:12

  • lo que sucedió fue que usé un complemento de comentarios que tenía “replytocom” pasado como parámetro cuando alguien quería responder a los comentarios de alguien. Este enlace también fue recogido por Goog. Y todas las páginas que estaban en el sitio que tenían comentarios se replicaron tantas veces como comentarios había en la página. Por ejemplo: si mi página fuera mysite.com/category/file1.html – y eso tiene 20 comentarios. además de esta publicación, tenía 20 archivos más como mysite.com/category/file1.html?replytocom=1234, mysite.com/category/file1.html?replytocom=12345 etc etc.. donde “12345” etc fueron los id de comentarios.

    – Sameer

    14 de marzo de 2011 a las 9:34


Avatar de usuario de Daniel
daniel

Puede establecer una declaración condicional en su archivo de tema para redirigir al espectador a la página 404.

usando este código:

$wp_url = $_SERVER["REQUEST_URI"] //from poelinca
if(preg_match('/thisisnotwanted/',$wp_url)) header('location:/404page');

  • get_bloginfo(‘url’ / ‘home’) – Devuelve la ‘Dirección del sitio (URI)’ configurada en Configuración > General. Estos datos se recuperan del ‘????’ registro en la tabla wp_options. Considere usar home_url() en su lugar. Y no está obteniendo la URL solicitada, sino la URL de la página de inicio. Tenga cuidado antes de publicar una respuesta.

    – Poelinca Dorín

    14 de marzo de 2011 a las 8:53

  • Está redirigiendo al usuario a la página de error 404. Esta es una mala práctica. Es mejor usar un encabezado 404 como @poelinca.

    -Michiel Pater

    14 de marzo de 2011 a las 8:56

  • todavía no entendiste mi punto, get_bloginfo(‘url’) o home_url() o get_blobinfo(‘home’) todos devuelven el mismo enlace en cada página, digamos que solicito www.example.com/category/post_name, home_url lo hará devuelva www.example.com y para probar la cadena no deseada, necesito category/post_name en su lugar.

    – Poelinca Dorín

    14 de marzo de 2011 a las 9:03


  • @poelinca: Lo entendí. Acabo de cometer un error, eso es todo.

    – Daniel

    14 de marzo de 2011 a las 9:07

Usando mod_rewrite, sería algo como

RewriteEngine on
RewriteCond %{THE_REQUEST} thisisnotwanted[\ /?].*HTTP/
RewriteRule ^.*$ - [R=404,L]

en un .htaccess

¿Ha sido útil esta solución?