|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Bonjour,
J'aimerais savoir comment font les framework pour avoir de belles url dans htaccess, exemple avec codeigniter on définit une fonction dans une classe: Code :
Et-il possible d'avoir un exemple simple et fonctionnel ? ou d'expliquer comment faire? Merci d'avance. |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
cherche sur google ou dans la FAQ les termes "URL Rewriting", tu devrais trouver ton bonheur ;o)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Apparement c'est pas de l'url rewrinting, vu que dans le framework il a aucun htaccess, à moins que l'ont peut faire du rewriting en php ??
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : janvier 2007 Messages : 1 452 ![]() |
D'une part tu as de l'url rewriting.
Pour pouvoir envoyer les urls à un controleur, un fichier php. Ensuite c'est le controleur qui décide quoi faire de l'url. Dans ton exemple, l'url est directement mis en rapport avec une classe, et une méthode. Tous les controleurs ne fonctionnent pas ainsi, c'est simplement un mode de fonctionnement choisi, que l'on retrouve souvent dans bien des architectures MVC, et ces architectures MVC utilisent toutes un framework. |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
on peut... en bidouillant, mais en passant par une page 404, donc un htaccess.
Dans tout les cas, c'est du htaccess. Sinon, c'est que ton URL est de la forme www.site.com/#hello et dans ce cas là ca peut etre de l'ajax et non de l'URL Rewriting. Mais a part ca je vois pas.
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Alors comment je peux faire avec url rewriting, genre :
www.site.com/index.php?p=photo devient => www.site.com/photo/ www.site.com/index.php?p=photo&id=1 devient => www.site.com/photo/1/ Merci pour vos réponses |
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
Citation:
... http://php.developpez.com/faq/index....arbo_virtuelle
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2007 Messages : 117 ![]() |
Trouvé ! enfait c'est super simple
www.site.com/index.php?p=photo RewriteRule ^(photo)$ index.php?p=$1 devient : www.site.com/photo Mais maintenant si je vx rajouter une page( index.php?p=news), je dois rajouter une ligne dans mon htaccess ou il y un moyen de prendre dynamiquement la chaine qui se trouve apres index.php?='chaine' ?? Merci |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() |
Le point veut dire nimporte quel caractère, le signe plus veut dire une occurence ou plus de ce qui précède.
Parfois ça peut être sympa de se de faire en sorte qu'il y ait une extension dans l'adresse, comme ça tu fais croire que ton site est statique: Code :
RewriteRule ^(.+)\.html$ index.php?p=$1 |
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() |
Autre méthode qui tient en une ligne:
Code :
RewriteRule ^(photo|news)$ index.php?p=$1 Par rapport au précédent, c'est moins général mais c'est utile si tu as d'autres pages dans le même dossier, et que tu ne veux pas que celles-là soient rendues inaccessibles par l'URL rewriting... Edit: autre cas, tu veux que le rewriting s'appliquer à toutes les adresses sauf, par exemple, "links" ou "disclaimer." Tu peux essayer quelque chose du style: Code :
RewriteRule ^((?!links|disclaimer).+)$ index.php?p=$1 |
|
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() Inscription : novembre 2005 Messages : 27 ![]() |
Non non, codeigniter n'a pas de fichier .htaccess dans la mesure ou il ne réécrit pas les URL.
C'est plus complexe que ça... en faite non, pas tant que ça. Un script s'occupe de décomposer l'URL suivant les / , et ensuite de cherche le bon fichier. Donc, le premier segment est la classe (qui porte le même nom que le fichier, mais avec une majuscule), le deuxième segment est la méthode, le troisième et les autres les paramètres. Donc, si j'entre "monsite.php/index.php/blog/commentaire/1" ce n'est pas du rewriting d'URL, mais une URL propre d'origine. Dans ce cas, le framework décompose l'URL (explode), cherche le fichier "blog.php" et l'exécute, en sachant que j'appelle la fonction qui affiche les commentaires et que je passe a cette fonction l'argument "1" qui représente disons l'id du com. Edit : Oups un oubli et une correction. Par défaut, codeIgniter n'a pas de .htaccess. Il faut donc toujours écrire l'url avec index.php. Si tu veux supprimer l'index.php, il faut effectivement un .htacces avec ceci dedans. Code :
Et tu peu même avoir les URL sous la forme classique "index.php?c=top&m=moumoute" !
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com