2009-08-26 12 views
1

J'ai URL comme /?test que je veux réécrire /page.php?page=test.htaccess Querystring réécrire

J'ai essayé comme ça, mais pour une raison quelconque, il ne fonctionne pas.

RewriteRule ^\?([a-z0-9\-\+]{3,20})/?$ /page.php?page=$1 [NC,QSA] 

Qu'est-ce que je fais mal?

Répondre

5

La chaîne de requête peut uniquement être testée avec RewriteCond directive. Le modèle RewriteRule est uniquement testé par rapport au URL path (dans les fichiers .htaccess, le chemin de l'URL sans le préfixe par répertoire).

Donc, essayez ceci:

RewriteCond %{QUERY_STRING} ^[a-z0-9-+]{3,20}$ [NC] 
RewriteRule ^$ /page.php?page=%0 [QSA] 
+0

Ah, je vois. Il a presque fonctionné mais la page de querystring est vide quand j'essaye de l'obtenir dans la page.php – Martin

+0

@Martin: Le fixe. – Gumbo

+0

Ah, ça fonctionne, merci! – Martin