sql >> Base de Datos >  >> RDS >> Mysql

redirigir 404 a URL similares

¡Oh hombre, oh hombre!

Lo que estás pidiendo no es simple y necesitas tener una computadora poderosa, pero los resultados son simplemente asombrosos.

Esto es lo que te sugiero que hagas:

  • Para un manejo adecuado del 404, tiene el ErrorDocument redirección en la configuración de vhost. El mío se ve así:ErrorDocument 404 /404.php;
  • Al tener un 404, Apache llamará a /404.php con todos los argumentos (qué URL incorrecta, etc., volcar $_SERVER para ver esto). Tienes que probar si solo hay dos expresiones en la URL / es decir, http://mysite.com/(expr1)/(expr2)/
  • Si no, haz un 404 clásico.
  • En caso afirmativo, haga un SOUNDEX busca con MySQL (en tu 404 Php expediente). Consulte el ejemplo de consulta aquí .
  • Luego, en este caso 404 "especial", haga una sugerencia, como lo hace Google, es decir:"¿quiso decir /action/story-name-action/ ? si es así, haga clic en el enlace".

Este es un trabajo duro, pero es interesante y muestra tu habilidad. Muy pocos sitios web hacen esto (de hecho, solo conozco Google).

Aquí hay una demostración en mi mesa francesa que podría brindarle una descripción general de cómo funciona:

mysql> SELECT * FROM job WHERE
SOUNDEX( description ) LIKE SOUNDEX('Machiniste cinéma');
+-------+--------------------+
| id    | description        |
+-------+--------------------+
| 14018 | Machiniste cinéma  |
+-------+--------------------+
1 row in set (0.06 sec)

mysql> SELECT * FROM job WHERE
SOUNDEX( description ) LIKE SOUNDEX('Mchiniste cinéma');
+-------+--------------------+
| id    | description        |
+-------+--------------------+
| 14018 | Machiniste cinéma  |
+-------+--------------------+
1 row in set (0.06 sec)

mysql> SELECT * FROM job WHERE
SOUNDEX( description ) LIKE SOUNDEX('Machnste cinema');
+-------+--------------------+
| id    | description        |
+-------+--------------------+
| 14018 | Machiniste cinéma  |
+-------+--------------------+
1 row in set (0.06 sec)

mysql>