2009-05-20 9 views
0

J'essaye de réécrire l'URL en utilisant le module mod_rewrite apache. J'essaie de l'utiliser comme ci-dessous:Réécriture d'URL en utilisant mod_rewrite dans .htaccess

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^wants/testing.htm wants.php?wantid=$1 [L] 

J'ai créé un fichier .htaccess dans le répertoire à partir duquel les fichiers sont accessibles.

Le mod_rewrite est également activé. Avec tout cela fait, je n'ai toujours pas réussi à le faire fonctionner.

Quelqu'un peut-il m'aider s'il vous plaît avec ceci? S'il vous plaît laissez-moi savoir si je manque quelque chose

Merci à l'avance, Gnanesh

+0

Qu'est-ce qui ne fonctionne pas exactement pour vous? Comment voulez-vous que l'URL soit réécrite et où vous voulez extraire le paramètre wantid? – duckyflip

+0

L'URL affiche mydomain.com/wants.php?wantid=123. J'ai besoin de faire ressembler mydomain.com/wants/123 – gnanesh

+0

Quelle est la référence de 1 $? –

Répondre

0

je pense un slash (ou plutôt son absence) pourraient être un problème yoru:

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^wants/testing.htm /wants.php?wantid=$1 [L] 

Sinon Apache pourrait cherchez le fichier PHP dans /wants/wants.php car il le traitera comme une URL relative.

+0

^/wants/testing.htm /wants.php?wantid=$1 [L] – SpliFF

+0

@SpliFF non, c'est pour les fichiers .conf pas .htaccess – Greg

2

Selon le commentaire de l'OP:

L'URL montre mydomain.com/wants.php?wantid=123. Je besoin de faire ressembler mydomain.com/wants/123

Cela devrait fonctionner pour votre cas:

RewriteEngine on 
RewriteBase/
RewriteRule ^wants/([0-9]+)$ /wants.php?wantid=$1 [L] 

Il vous permettra d'utiliser http://yoursite.com/wants/123 et réécrira en silence à veut.php? wantid = 123

0

Hmm, donc je lui ai donné une idée et je suppose que vous pourriez faire quelque chose comme ça (seulement changé la regexp acco rding à votre commentaire, si je comprends bien):

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^wants/\d+$ /wants.php?wantid=$1 [L] 

Mais je suppose que vous pouvez également laisser la référence 1 $, et toujours être en mesure d'accéder à l'identifiant dans votre wants.php. Alors

RewriteRule ^wants/\d+$ /wants.php [L] 

devraient fonctionner aussi, et vous pouvez alors utiliser quelque chose comme

dans votre wants.php où le dernier élément du tableau serait votre identifiant (ou tout ce que vous jamais décider de réécrire et envoyer au script).

0

Si vous souhaitez utiliser la règle dans le fichier .htaccess dans votre répertoire veut, vous devez supprimer le contexte wants/ depuis le début du modèle. Donc juste:

RewriteEngine on 
RewriteRule ^([0-9]+)$ /wants.php?wantid=$1 [L] 

Sinon, si vous voulez utiliser la règle dans le.Fichier htaccess dans votre répertoire racine:

RewriteEngine on 
RewriteRule ^wants/([0-9]+)$ wants.php?wantid=$1 [L] 
Questions connexes