Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

redirecionar 404 para URLs semelhantes


Oh homem, oh homem!

O que você está pedindo não é simples e precisa que você tenha um computador potente, mas os resultados são simplesmente incríveis.

Aqui está o que eu sugiro fazer:
  • Para o manuseio adequado de 404, você tem o ErrorDocument redirecionamento na configuração do vhost. O meu está assim:ErrorDocument 404 /404.php;
  • Ao ter um 404, o Apache chamará /404.php com todos os argumentos (qual URL ruim e assim por diante, despeje $_SERVER para ver isso). Você tem que testar se existem apenas duas expressões na URL / ou seja, http://mysite.com/(expr1)/(expr2)/
  • Se não, faça um 404 clássico.
  • Se sim, faça um SOUNDEX pesquise com MySQL (no seu 404 Php Arquivo). Veja o exemplo de consulta aqui .
  • Então, neste caso 404 "especial", faça uma sugestão, como o google faz, ou seja:"você quis dizer /action/story-name-action/ ? em caso afirmativo, clique no link".

Este é um trabalho árduo, mas é interessante e mostra sua habilidade. Muito poucos sites fazem isso (eu só conheço o google na verdade).

Aqui está uma demonstração na minha mesa de francês que pode lhe dar uma visão geral de como 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>