2009-12-28 6 views
2

Comment puis-je réécrire:URL Rewriting avec Mod-Rewrite

http://localhost/profile.php?user=MaFi 

à

http://localhost/user/MaFi 
+0

Cette question appartient à ServerFault –

+0

** Tags ** ne doit pas être utilisé pour les demandes de migration. Voilà à quoi servent les votes serrés. – Sampson

+3

Mes deux cents: Je considère que les questions de mod re-écriture sont généralement correctes pour SO, car ce sont vraiment des expressions régulières, et vont généralement de pair avec une sorte de configuration MVC. – zombat

Répondre

2

Essayez un RewriteRule comme ceci:

RewriteRule ^profile.php?user=(.*)$ /user/$1  [R=301,L] 
+0

Cela ne fonctionnera tout simplement pas car la requête n'est pas une partie URI du chemin URI. – Gumbo

+0

Hmm ... Je pensais que ça avait fonctionné, mais de plus amples recherches me prouvent que je me trompe. @Mafioso - Gumbo est correct, cette règle ne vous donnera pas les résultats attendus. Vous devriez aller avec sa réponse. Je ne peux pas supprimer celui-ci tant qu'il n'est pas accepté. – zombat

3

Si vous voulez vraiment rediriger /profile.php?user=MaFi à /user/MaFi, essayez cette règle:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)user=([^&]+)(&+(.*))?$ 
RewriteRule ^profile\.php$ /user/%3?%1%5 [L,R=301] 

Mais si vraiment vous voulez réécrire /user/MaFi interne /profile.php?user=MaFi, essayez cette règle:

RewriteRule ^user/([^/]+)$ profile.php?user=$1 [L] 
0

yoursite.com/MaFi ~ yoursite.com/profile.php?user=MaFi

<a href='/MaFi'>MaFi</a> 

RewriteRule ^([^.]+)$ "/profile.php?user=$1" [L] 

Ou peut-être ...

yoursite.com/profile.php?user=MaFi ~ yoursite.com/MaFi

<a href='/profile.php?user=MaFi'>MaFi</a> 

RewriteCond %{QUERY_STRING} user=(.+) 
RewriteRule ^([^.]+)$ "/%1" [QSA] 

Je ne suis pas à 100% sur ces derniers mais j'espère qu'ils aident.