Aller au contenu

Rewrite Url help :)


qntoinOo

Sujets conseillés

Bonjours,

Je j'ai lu votre article du le rewrite url mais je n'ai pas trouver solution a mon problème.

J'aurais voulu savoir comment faire en sorte que les personne allant sur

http://www.monsite.com/sonpseudo

Rewrite l'url vers

http://www.monsite.com/index.php?user=sonpseudo

Je vous remercient d'avance pour votre aide.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour qntoinOo, et bienvenue à bord du Hub !

Dans la mesure où ton hébergeur accepte la réécriture d'URLs (sans l'URL exacte il est difficile de le dire), une règle suffit pour ce faire:

J'imagine que le pseudo varie, et peut contenir des caractères divers....

Il faut donc prévoir les cas de figures où la redirection ne devra pas se faire...

Par exemple, il ne faudra pas rediriger http://www.monsite.com/index.php en http://www.monsite.com/index.php?user=index.php sinon tu te lances dans une boucle infinie.

Deux approches sont possibles: soit tu listes de manière exhaustive TOUTES les URLs qui ne doivent pas être réécrites, comme par exemple index.php, soit on fait une règle qui teste si le fichier/répertoire existe, et dans ce cas ne réécrit rien.

Une autre possibilité est de créer une page d'erreur 404 personnalisée, avec un script php qui fait une redirection. Pour ce faire, une simple directive Apache ErrorDocument suffit.

Donnes-nous plus d'infos ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Lors de l'inscription les membres ne peuvent y insérer que des caractère alphanumerique et la liste suivante : . - _ ^

La solution de tester si tel fichier/dossier existe me semble interessante (:

Mais comment faire ??

Je te remercie d'avance (:

Lien vers le commentaire
Partager sur d’autres sites

Une réécriture conditionnelle permet de tester si un fichier existe ou non, par exemple:

RewriteCond   /document/root/%{REQUEST_FILENAME} !-f
RewriteCond   /document/root/%{REQUEST_FILENAME} !-d
RewriteRule  (.*) index.php?user=$1 [L]

teste si le fichier demandé est un fichier ou répertoire réel, et dans la négative effectue une réécriture.

Il faudra remplacer /document/root/ par le chemin du DOCUMENT_ROOT de ton site web.

Sinon, tu as aussi la possibilité (plus simple) d'utiliser un script php qui sera appellé chaque fois qu'une page ne sera pas trouvée.

ErrorDocument 404 /user.php

Avec dans le fichier user.php, une analyse de la variable d'environnement $_SERVER['REQUEST_URI'] pour extraire le pseudo et le traiter.

Dan

Lien vers le commentaire
Partager sur d’autres sites

:wacko: Voila les problème qui commence :(

Donc j'ai d'abords commencer par voir mon phpinfo(); pour connaitre le l'adresse qu'il fallait mettre a la place de "/document/root/"

Je regarde a DOCUMENT_ROOT je la mets dans le .htaccess

Je upload le .htaccess malheureusement quand je vais sur http://www.zblogz.com

1- Les url définie dans le html on du être modifier

2- Tu pourra voir que quand je request la variable user elle me renvoie toujours index.php :( ( en allant sur http://www.zblogz.com/Dan par exemple )

Je comprends vrément pas :((((

Lien vers le commentaire
Partager sur d’autres sites

J'ai finalement trouver solution a mon problème.

En me servant de l'article, de mets connaissance php et de ton idee pour les erreur 404 j'ai finalement reussi a faire ca

Options +FollowSymlinks

RewriteEngine on
RewriteRule ^([0-9a-zA-Z-_^]+)$  index.php?user=$1  [L]

j'ai par contre décide d'enlever le faite que les membres puisse mettre des "." dans leur pseudo car sinon le rewrite url aurait pris en compte tous les fichiers avec extension ;)

Voilà @+ sur le forum, je tiens aussi a remercier hub-webmaster qui est une communaute sympatique (:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...