J'ai vu des URL comme ça autour et je me demandais comment ils sont utilisés.PHP: format URL www.mysite.com/users/33
Jusqu'à présent, je me sers www.mysite.com/users/?id=33
Comment puis-je utiliser l'autre format?
J'ai vu des URL comme ça autour et je me demandais comment ils sont utilisés.PHP: format URL www.mysite.com/users/33
Jusqu'à présent, je me sers www.mysite.com/users/?id=33
Comment puis-je utiliser l'autre format?
La réponse de Paul Peelan est correct si un peu :-) bavard Mettez dans votre fichier .htaccess à la racine de votre site:
RewriteEngine On
RewriteRule ^users/(\d+)$ /users/?id=$1
Cette volonté match/users/33,/users/1,/users/12345 etc et rediriger vers/users /? id = 12345.
Cela nécessite que le moteur mod_rewrite
de votre configuration Apache soit activé. Voir the mod_rewrite docs pour plus d'informations.
Vous devrez utiliser le "mod-rewrite" et par ex. un fichier .htaccess. Apache envoie ensuite les URL en fonction de vos paramètres dans le fichier .htaccess.
.:
par exemple<IfModule mod_rewrite.c>
RewriteEngine on
# If your site can be accessed both with and without the 'www.' prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
#
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment and adapt the following:
# RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
#
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
# RewriteBase/
# Rewrite URLs of the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
Cordialement, Paul
Par ailleurs, l'exemple ci-dessus est tiré de Drupal! –
merci paul, trouvé un bon article à http://www.phpriot.com/articles/search-engine-urls/2 – iamjonesy
Great! Heureux d'avoir pu aider! /Paul –
Je sais que vous avez déjà sélectionné une réponse à cette question, mais c'est très utile à savoir. Le framework PHP Codeigniter vous permet d'utiliser des URL comme ça par défaut. J'ai trouvé beaucoup plus facile de faire de la réécriture d'URL de cette façon. D'autres informations à ce sujet, y compris des exemples de code, peuvent être trouvées à http://codeigniter.com/user_guide/general/urls.html
Merci richsage, juste ce dont j'avais besoin! – iamjonesy
Je pense que je dois activer le RewriteEngine dans httpd.conf mais je ne sais pas où le trouver. J'utilise un Mac btw. merci – iamjonesy
Vous ne savez pas où c'est sur le Mac, mais quelque chose comme LoadModule rewrite_module/usr/lib/apache2/modules/mod_rewrite.so est nécessaire. Vous devrez peut-être activer le module Rewrite spécifiquement - si vous êtes bloqué, http://serverfault.com/ pourrait être le meilleur endroit pour demander des problèmes de configuration du serveur :-) – richsage