Mysql
 sql >> Database >  >> RDS >> Mysql

reindirizzare 404 a URL simili

Oh uomo, oh uomo!

Quello che stai chiedendo non è semplice e devi avere un computer potente, ma i risultati sono semplicemente sorprendenti.

Ecco cosa suggerirei di fare:

  • Per una corretta gestione del 404, hai il ErrorDocument reindirizzamento nella configurazione vhost. Il mio si presenta così:ErrorDocument 404 /404.php;
  • Quando si ha un 404, Apache chiamerà /404.php con tutti gli argomenti (quale URL errato e così via, scarica $_SERVER per vedere questo). Devi verificare se ci sono solo due espressioni nell'URL / cioè http://mysite.com/(expr1)/(expr2)/
  • In caso contrario, esegui un classico 404.
  • Se sì, esegui un SOUNDEX cerca con MySQL (nel tuo 404 Php file). Vedi l'esempio di query qui .
  • Quindi, in questo caso "speciale" 404, dai un suggerimento, come fa Google, ad esempio:"intendevi /action/story-name-action/ ? in tal caso, fare clic sul collegamento".

Questo è un duro lavoro, ma è sia interessante che mostra la tua abilità. Pochissimi siti web lo fanno (in realtà conosco solo google).

Ecco una demo sul mio tavolo francese che potrebbe darti una panoramica di come funziona:

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>