2010-06-09 9 views

Répondre

3

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.

+0

Merci richsage, juste ce dont j'avais besoin! – iamjonesy

+0

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

+0

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

2

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

Diverses règles de réécriture.

<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

+0

Par ailleurs, l'exemple ci-dessus est tiré de Drupal! –

+0

merci paul, trouvé un bon article à http://www.phpriot.com/articles/search-engine-urls/2 – iamjonesy

+0

Great! Heureux d'avoir pu aider! /Paul –

0

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