2010-06-20 7 views
0

En utilisant htaccess comment transformer ce type d'URL:Comment réécrire des URL en utilisant htaccess?

http://www.mysite.com/page.php?slug=hello-world 

dans ce type:

http://www.mysite.com/page/hello-world 

Et pas seulement celui-url mais tous les urls du 1er format au 2ème format.

Répondre

3

Si le second est l'URL que vous voulez que les gens voient, utilisez ceci:

RewriteRule ^page/(.*)$ /page.php?slug=$1 

Si c'est l'inverse:

RewriteRule ^page\.php?slug=(.*)$ /page/$1 

EDIT: Aussi, assurez-vous vous avez les éléments suivants dans votre .htaccess avant TOUTE réécritureRègles:

RewriteEngine On 
+0

cela ne fonctionne pas pour moi, je mets le 1er bloc de code affiché dans un. fichier htaccess que j'ai placé à la racine de mon dossier www. Ensuite, j'ai essayé d'accéder à la page en tapant http://www.monsite.com/page/hello-world et cela n'a pas fonctionné. – Jim

+0

Oui, j'ai ajouté le moteur de réécriture sur la déclaration, encore, il renvoie une erreur de 404 page introuvable :( – Jim

+0

Je viens d'essayer cela et cela a bien fonctionné.Toutes les redirections fonctionnent pour vous? Mod_rewrite activé, .htaccess pas ignoré? –

1

Vous pouvez vous référer à here et this

Voici ma pensée à votre solution:

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^slug=[^/]+$ [NC] 
RewriteRule ^page\.php$ http://www.mysite.com/page/$1? [R=301,L] 
+0

Ce code est de me rediriger vers mysite.com/product quand je tape mysite.com/product.php?slug=hello-world qui, bien sûr, est introuvable et si je tape mysite.com/page/hello-world dans un 404. – Jim

+0

pourriez-vous spécifier votre question plus? le mot «tourner» n'est pas clair, voulez-vous dire redirection frontend/redirection serveur? et il est préférable d'indiquer quels paramètres dans l'URL que vous voulez changer ... – Capitaine