Sto riscrivendo un vecchio progetto utilizzando Symfony2, così posso provare il framework. Ho URL che saranno di forma:Come si indirizza un URL utilizzando una stringa di query in Symfony2?
/profile/{id}
nel modo snazzy che Symfony2 lo fa. Tuttavia, la stessa pagina trovava originariamente facendo:
/profile.php?id=12345
Quindi, nel caso in cui qualcuno ha un vecchio URL, mi piacerebbe reindirizzare questi collegamenti. Il problema è che non so come catturare rotte di questa natura. Ho provato
/profile.php?id={id}
ma quello non ha funzionato. Come posso impostare questo percorso?
Follow-up: Non voglio fare "catch-all" (perché non è intuitivo per me così temo insetti futuri), e preferirei non farlo tramite .htaccess per lo stesso ragionare. Penso che l'opzione migliore sia far corrispondere "/profile.php" al controller, verificare che "id" esista in query-string e reindirizzare di conseguenza. Se così non fosse, mi reindirizzare a 404.
Il mod_rewrite corretto sarebbe: 'RewriteRule^profile.php? Id = (\ d +) $/profile/$ 1 [R = 301]'? –
Voglio solo verificare che questa sia la migliore strategia, dal momento che non sono un esperto di Apache htaccess shenanigans –
Né neanche. È possibile verificare le riscritture qui: http://martinmelin.se/rewrite-rule-tester/. Anche se preferirei gestirlo con SF. Perché le rotte oggigiorno fanno parte del modello/della logica. – Raffael