Url rewritting: htaccess ou $_SERVER['REQUEST_URI']

WRInaute passionné
Bonjour

concernant l'url rewritting:

est il préférable de gérer ceci dans un htaccess ou bien directement dans le CMS (maison) via $_SERVER['REQUEST_URI']

Quel sont les avantages et inconvénients?

Merci de m'avoir lu
bonne journée ;)
 
WRInaute passionné
merci de ta réponse

donc il vaut mieux coupler htacces et contrôleur frontal, c'est ca?

par exemple mes url sont du type:

Code:
-http://www.exemple.com/index.php?p=mon-mot-clef

le top évidement serait

Code:
-http://www.exemple.com/mon-mot-clef

quand le navigateur tente d'afficher -http://www.exemple.com/mon-mot-clef il me faut une règle d’écriture htaccess pour pouvoir afficher -http://www.exemple.com/index.php?p=mon-mot-clef

Donc quel serait l'avantage d'une gestion des routes via un front controleur?
 
WRInaute accro
- 1 seule règle de rewrite pour tout faire.
- Ensuite toute la puissance de PHP qui permet de faire bcp plus de logique qu'en htaccess, notamment avec des routes construites à partir de la DB ou encore avec des regex exotiques.

Les CMS comme Drupal et WordPress utilisent ce genre de technique.
Si après tu changes de serveur HTTP, c'est 1 seule règle à refaire.

Si on regarde le .htaccess de PrestaShop, c'est un bon exemple de ce qu'il ne faut PAS faire.

-http://toolki.com/fr/pages/tuto/easy-rewrite
 
WRInaute passionné
Merci beaucoup spout!

effectivement moi qui ai toujours eu des problèmes avec la ré-écriture d'url, je trouve ce procédé beaucoup plus simple, maintenable et modulable...


je me permet une dernière petite question:

mes url sont indexées par google selon ce schéma:

-http://www.exemple.com/index.php?p=mon_mot_clef

j'ai créé une redirection php (header) pour rediriger en 301 si "index.php?p=" est détecté vers

-http://www.exemple.com/mon_mot_clef

est-ce la bonne solution vis à vis de google et des backlinks externe? d'un point de vue référencement j'entends...

encore merci, je suis très content d'avoir appris cette astuce !
 
WRInaute impliqué
Spout tu a l'air de bien maitriser le sujet.

Si l'on regarde le htacess de wordpress en gros il y a 2 conditions :
Si ca n'est pas un fichier et si ca n'est pas un dossier => urlrewrite index.php

Perso je n'utilise pas ces conditions mais une seule régle d'urlrewrite :
Si l'url ne contient pas de . (donc extension) => urlrewrite index.php
Celà implique que tous les fichiers doivent avoir une extension (c'est généralement le cas) et pas de . pour les url rewritée (c'est aussi généralement le cas). Celà veut dire également que les dossiers 'physiques' ne sont pas accessibles puisque pas de . (c'est plutot positif est revient a faire un -INDEX) .

Ma question, niveau performance, y a t-il réellement un gain a utiliser ma méthode, ou bien je m'embete pour rien ? Quoi que celà ne m'embete pas vraiement. La seule différence et que je ne peut pas faire de ré-écriture sur des url avec un . ce que je ne compte pas faire.
 
WRInaute accro
Niveau perf je pense que ça doit être +/- équivalent, voir même plus rapide ta technique vu que tu recherches uniquement après le ".". Pour être sûr il faudrait faire des benchmarks.
 
WRInaute passionné
rikew a dit:
Perso je n'utilise pas ces conditions mais une seule régle d'urlrewrite :
Si l'url ne contient pas de . (donc extension) => urlrewrite index.php

et comment évites-tu la réécriture des fichier .css et .js par exemple ? une règle htaccess supplémentaire?
 
Discussions similaires
Haut