2009-05-21 7 views
0

Je veux avoir mes urls site ressembler àmod_rewrite .htaccess jouer avec des variables

http://example.com/place/info?var=info&morevars=ifneeded 

Place et informations sont également variables, mais ils ont un nom fixe, les uns après varierait. EDIT Ceci est l'URL que je suis en train de réécrire

http://example.com/test.php?place=test&action=info&var=info&morevars=ifneeded 

C'est ce que j'ai jusqu'à présent

RewriteEngine on 

RewriteRule ^([A-Za-z0-9-]+)/?$ test.php?place=$1 [NC] 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ test.php?place=$1&action=$2 [NC] 

Je pense qu'il une façon de le faire avec {QUERY_STRING}, mais je ne peux pas le faire fonctionner seulement 500 erreurs ou il ne fait pas de différences.

Répondre

1

Vous avez défini le QSA flag que la requête ajoute automatiquement la demande initiale à la nouvelle:

RewriteEngine on 
RewriteRule ^([A-Za-z0-9-]+)/?$ test.php?place=$1 [NC,QSA] 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ test.php?place=$1&action=$2 [NC,QSA] 
+0

Merci, ne l'aurais jamais trouvé dans tous les docs Apache sans vous! – Scott

0

Vous êtes absent le premier/

RewriteEngine on 

RewriteRule ^/([A-Za-z0-9-]+)/ test2.php?place=$1 [NC] 
RewriteRule ^/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/ test2.php?place=$1&action=$2 [NC] 
+0

qui ne reçoit pas les les premières variables L'URL de sa réécriture est http://example.com/test2.php?place=test&action=info&var=info&morevars=ifneeded – Scott

+0

La barre oblique n'est nécessaire que si vous souhaitez utiliser la règle dans le serveur ou configuration de l'hôte virtuel. Dans .htaccess, le préfixe contextuel par répertoire est supprimé avant de tester les règles. – Gumbo

Questions connexes