Comment puis-je réécrire:URL Rewriting avec Mod-Rewrite
http://localhost/profile.php?user=MaFi
à
http://localhost/user/MaFi
Comment puis-je réécrire:URL Rewriting avec Mod-Rewrite
http://localhost/profile.php?user=MaFi
à
http://localhost/user/MaFi
Essayez un RewriteRule comme ceci:
RewriteRule ^profile.php?user=(.*)$ /user/$1 [R=301,L]
Cela ne fonctionnera tout simplement pas car la requête n'est pas une partie URI du chemin URI. – Gumbo
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
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]
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.
Cette question appartient à ServerFault –
** Tags ** ne doit pas être utilisé pour les demandes de migration. Voilà à quoi servent les votes serrés. – Sampson
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