.htaccess rewrite rule

Résolu/Fermé
Nivo - 30 nov. 2012 à 20:00
Stanislas Poisson Messages postés 423 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 - 1 déc. 2012 à 15:59
Bonjour,

Je voudrais les url de mon site du type:

http://www.monsite.ca/author/nom/

vers

http://www.monsite.ca/nom/

Le "nom" change pour chaques utilisateurs.

Quel serait le "rewrite rule" ?

Merci!

P.S. J'ai essayer de comprendre comment "rewrite rule" fonctionne, mais je n'y arrive pas assez pour ne pas avoir peur de gaffer.

6 réponses

ok. Merci encore.
1
Stanislas Poisson Messages postés 423 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 66
1 déc. 2012 à 15:59
oups je viens de voir dans la deuxieme regex, j'ai pas mis d'espace entre le $ et le http
0
Stanislas Poisson Messages postés 423 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 66
1 déc. 2012 à 12:26
Pour ton .htaccess, je te conseille les elements suivants:

###############
#Charset par default a bien mettre en corelation avec le charset indiquer sur ton html
AddDefaultCharset UTF-8

#Interdire le listage des fichiers quand on accede a un dossier
Options -Indexes

#Activation des regles de réecriture
RewriteEngine on

#redirection du site sans www vers le www evide le duplicate content pour les referenceur.
RewriteCond %{HTTP_HOST} !^www
RewriteRule (.*) http://www.%{HTTP_HOST}$1 [L,R]
###############

Voila deja une bonne base pour ne pas avoir trop de problème.

Pour ton probleme, je n'est en revanche pas bien compris si tu veux rediriger la version autor/nom vers /nom ou si c'est autres chose. Si tu pouvais préciser.
0
Bonjour Stanislas,

Merci de ta réponse.

Je te précise ma demande. Lorsqu'un utilisateur crée un compte sur mon site il peut par la suite y accéder via l'URL suivante:

http://www.monsite.ca/author/nom/ (Le nom étant différent pour chacun des utilisateurs)

Je voudrais, afin de simplifier les choses que les membres puissent accéder à leur compte via une URL du type:

http://www.monsite.ca/nom/

J'espère que cela clarifie les choses.

Merci de ton temps,

Alex
0
Stanislas Poisson Messages postés 423 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 66
1 déc. 2012 à 15:30
ok, tu veux donc avoir les meme infos pour les deux url si j'ai bien compris. Très mauvais au referencement et a la gestion.
D'autant que si tu a par exemple un http://www.monsite.ca/blog/ le systeme recherchera un utilisateur du nom de blog
par contre si tu met un truc genre http://www.monsite.ca/a-nom/ on peut reperer le a- et donc savoir que c'est un user.

Donne moi ton avis la dessus.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tu vois, je ne savais pas que cela aurais un effet négatif sur le référencement. Comme le changement est mineur, qu'il n'est pas absolument nécessaire au bon fonctionnement du site et que cette fonction ne serais utilisée que par une minorité de gens, je préfère le statut quo.

Mais merci de ton temps Stanislas, c'es très apprécié!
0
Stanislas Poisson Messages postés 423 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 66
1 déc. 2012 à 15:52
Pas de soucis.
Voila ce que je te conseille:

utiliser le http://www.monsite.ca/author/nom/

et dans le regle de reecriture utiliser cela:

RewriteRule ^author/([\d\w]+)$ index.php?author=$1 [L]

evidemment a adapter selon ton usage :p

le principe. on declare une regle de reecriture, on cherche apres le ndd le sigle author si on le trouve, on dois avoir ensuite, une suite de caracteres compose de lettre minuscule et majuscule \w et/ou de chiffres \d ce qui revient a dire a-zA-Z0-9 et le plus (+) oblige le fais d'en avoir au minimum un. on peux ensuite appliquer des regles plus strict du style un point au millieu, un nombre min max de caracteres,...

si la regle est prise en compte, le resultat dois etre transferer a index.php (a modifier pour ton site) avec comme parametre en GET author qui contient le nom trouver dans l'url. et le [L] signifie last autrement dis si la regles est bonne, on ne regarde pas les regles suivante.

il est aussi possible de faire cela:

RewriteRule ^a-([\d\w]+)$http://www.{HTTP_HOST}/author/$1 [L,R=301]
RewriteRule ^author/([\d\w]+)$ index.php?author=$1 [L]

ainsi, tu redirige l'url raccourci a-nom vers author/nom en redirection 301 donc bien pris en compte pour le referencement
0