Je développe un site Web utilisant PHP et Apache. Je veux transformer mes URL de p>
www.example.com/book.php?book=title strong> p>
dans quelque chose comme ça, si c'est possible bien sûr: p>
www.example.com/book/title strong> p>
Notez que le titre des livres est unique et ne peut pas être répété. P>
J'ai lu à ce sujet, mais aucun des messages n'était assez clair pour un débutant comme moi.
Connaissez-vous un didacticiel qui explique cela? P>
Merci. P>
5 Réponses :
La fonctionnalité que vous recherchez est appelée «réécriture d'URL».
Vous pouvez le faire manuellement: vous expliquez le motif en utilisant une expression régulière et le serveur Web traduit les demandes. Avec Apache, il est communément trouvé dans les fichiers HTACCESS ou Directyle dans le httpd.conf. Voir Doc officiel. Ici: http://httpd.apache.org/docs/2.0/misc/ rewriteguide.html p>
Ce n'est pas "que" facile à configurer cependant, débogage des expressions régulières en particulier. P>
En ce qui concerne votre problème, essayez une règle comme celle-ci: P>
RewriteEngine on RewriteRule ^book/(.*)$ book.php?book=$1 [L]
Voici la façon dont Kohana (et 99,99% des cadres PHP) est-il
Ajoutez un fichier .htaccess (si vous utilisez Apache) p> ceci redirige toutes les URL à index.php. index.php sera une sorte de contrôleur frontal qui charge des scripts basés sur l'URL p> donc dans votre exemple: P> localhost / book / titre p>
blockQuote> index.php serait chargé. Cela irait dans l'URL et obtiendrait la page (contrôleur) à charger qui fera réellement tout le travail. Dans ce cas peut-être des livres.php. books.php obtiendrait le titre du livre de l'URL, puis recherchez une base de données ou faire ce qu'il faut avec ce nom. P> P>
expansion sur @ Rodolphe's et @ Galen's's Réponses un peu.
Si vos besoins en réécriture d'URL sont limités, un Cependant, comme le suggère Galen, vos besoins peuvent être inconnus, ou vous voudrez peut-être leur étendre ultérieurement, sans que la nécessité de toucher vos règles de réécriture, une fois que vous les avez travaillé. P> A Voiture courante de le faire, est de concevoir votre application autour d'un système d'URL qui est 1) p> Vous avez des scripts séparés pour chaque contrôleur. Vous réécrivez ensuite chaque demande au formulaire .htaccess Code> avec des règles décrites dans l'exemple de Rodolphe fera bien. p>
www.host.com/controller/action/paramètre code>. Un exemple d'une telle URL pourrait être
www.host.com/book/view/1 code>, qui pourrait alors être traité interne à plusieurs égards. P>
$ contrôleur.php? Action = $ action et param = $ action param = $ param code>, redirection des demandes non correspondantes ou non valides à un contrôleur par défaut. P>
# Redirect all requests that isn't a file or
# directory to your front controller
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule .* index.php [L]
J'ai créé un lien interne dans le format statique, comme, "http://www.example.com/casestudy/34" dans ma page Web.
Et j'ai écrit dans le fichier .htaccess Le code suivant: p>