urlrewriting

15 réponses
AuteurMessage

linkfr |
Membre

Photo de linkfr

Inscrit le : 09/05/2005

# Le 07/04/2013 à 11:31

Hello

Bon alors je me sens tout foireux de poser la question ici (j'ai pas trouvé de catégorie dans le forum pour 'problèmes techniques').

J'en ai pourtant fait des urlrewriting dans ma jeunesse mais visiblement c'est pas comme le vélo et j'arrive pas a trouver mon cas sur google pourtant j'ai essayé plusieurs requêtes bien 'pensées' mais non... et je lutte depuis deux heures sur une bêtise d'url rewriting.

Rapidement voici ce que je souhaite faire et qui foire a chaque fois..., un truc qui me parait tout bête mais j'y arrive pas...

j'ai un domaine et je souhaite générer des pages et des sous dossiers de cette façon là :

www.domaine.com/fr/fr/villededepart/viledarrivee

sachant que le sous dossier /villededepart/ et le sousous dossier /villedarrivee/ sont généré par deux pages php distinctes et que le .htaccess se trouve dans le second /fr/

j'ai essayé ca mais ca me redirige vers la page villededepart.php et pas vers la page villedarrivee.php... et ca ne apsse pas les parametres

Options +FollowSymlinks
RewriteEngine on
RewriteRule ([a-zA-Z_]+)/([a-zA-Z_]+)/$ villededarrivee.php?villedepart=$1&villearrive=$2 [L]
RewriteRule ([a-zA-Z_]+)/([a-zA-Z_]+)$ villededarrivee.php?villedepart=$1&villearrive=$2 [L]
RewriteRule ([a-zA-Z_]+)/$ villededepart.php?villedepart=$1 [L]
RewriteRule ([a-zA-Z_]+)$ villededepart.php?villedepart=$1 [L]

bien évidemment
RewriteRule ([a-zA-Z_]+)/([a-zA-Z_]+)/$ villededarrivee.php?villedepart=$1&villearrive=$2 [L]
RewriteRule ([a-zA-Z_]+)/([a-zA-Z_]+)$ villededarrivee.php?villedepart=$1&villearrive=$2 [L]
ca marche

et
RewriteRule ([a-zA-Z_]+)/$ villededepart.php?villedepart=$1 [L]
RewriteRule ([a-zA-Z_]+)$ villededepart.php?villedepart=$1 [L]

mais les deux cumulé ca ne fonctionne pas... que ce soit l'un qui commence ou l'autre et dans tous les sens

et je dois avoir le cerveaux cramé car je trouve pas la soluce ni sur gg ni en testant toutes les 'solutions' possibles a chaque fois y' un truc qui couille...

donc si l'un de vous à déjà réalisé ce genre d'urlrewriting et à un petit peu de compassion pour moi, ca serait cool de m'aiguiller vers un truc qui fonctionne. Vous aurez ma reconnaissance éternelle

Merci et bon weekend à tous

Pierre ::: Teletoday.com - A la télé ce soir !Ouvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 07/04/2013 à 12:02

As-tu essayé de mettre "RewriteBase /" ? (le chemin dépendant d'où tu as mis ton fichier .htaccess)

linkfr | Pierre
Membre

Photo de linkfr

Inscrit le : 09/05/2005

# Le 07/04/2013 à 12:05

non mais j'essaye de ce pas

mais je ne pensais pas que ca serait nécessaire le htaccess étant dans le ssousous dossier www.domaine.com/fr/fr/

Pierre ::: Teletoday.com - A la télé ce soir !Ouvrir dans une nouvelle fenetre

linkfr | Pierre
Membre

Photo de linkfr

Inscrit le : 09/05/2005

# Le 07/04/2013 à 12:10

hum ca me dit :

Not Found

The requested URL /villededarrivee.php was not found on this server.

et en mettant RewriteBase /home/xxxxxx/www/test/fr/fr
ca ne trouve pas le fichier alors qu'il est bien là...

Not Found

The requested URL /home/xxxxxx/www/test/fr/fr/villededarrivee.php was not found on this server.

arghh

(Message édité le 07-04-2013 à 12h18 par linkfr)

Pierre ::: Teletoday.com - A la télé ce soir !Ouvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 07/04/2013 à 12:10

Oui mais justement, ça peut éviter de mélanger tes 2 Rewrite.

Tu as aussi la solution de préciser le début avec le signe ^ car du coup, tu ne définis pas le début, donc il relance toujours le second rewrite (depart) qui est valide dans tous les cas.

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 07/04/2013 à 12:11

linkfr a dit :
hum ca me dit :

Not Found

The requested URL /villededarrivee.php was not found on this server.

Oui parce que tu dois définir le chemin complet à partir de la base pour ton fichier.

linkfr | Pierre
Membre

Photo de linkfr

Inscrit le : 09/05/2005

# Le 07/04/2013 à 12:22

ah merde j'ai edité au lieu de reposter

bon ben meme avec l'url absolue et le ^ et meme en intervertissant /1/2/ et /1/ rien ne fonctionne, et j'arrive pas atrouver un truc sur le net qui explicaue clairemetn la méthode pour créer des sousdossier et des soussousdossier easy...

Pierre ::: Teletoday.com - A la télé ce soir !Ouvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 07/04/2013 à 12:28

Il est où ton fichier "villededarrivee.php" ainsi que ton fichier ".htaccess" et qu'est ce que tu as mis comme "rewritebase" ?

Parce qu'au niveau du code, j'ai aucun doute, donc c'est juste ton chemin qui n'est pas bon.

ultrajoe | Jérôme
Membre

Photo de ultrajoe

Inscrit le : 16/07/2008

# Le 07/04/2013 à 13:40

J'ai pas vérifié tes règle de rewriting mais t'es sur de l'orthographe de "villededarrivee.php", c'est pas "villedarrivee.php" plutôt ?

linkfr | Pierre
Membre

Photo de linkfr

Inscrit le : 09/05/2005

# Le 08/04/2013 à 07:30

Désolé obligation familiale dominicale

alors je reprends, tous mes fichiers villededarrivee.phph (boulettes qu'au final je laisse par fainéantise Ultrajoe) villederetour.php et le htaccess sont dans le sousous rep 'fr', c'est a dire ici www.domaine.com/test/fr/fr/
soit en url absolue :
/home/domaine/www/test/fr/fr/

et au final le htacces que j'ai qui fonctionne pas :

Options +FollowSymlinks
RewriteEngine on
RewriteBase /home/domain/www/test/fr/fr
RewriteRule ^(.+)/(.+)/$ villededarrivee.php?villedepart=$1&villeretour=$2 [L]
RewriteRule ^(.+)/(.+)$ villededarrivee.php?villedepart=$1&villeretour=$2 [L]
RewriteRule ^(.+)/$ villededepart.php?villedepart=$1 [L]
RewriteRule ^(.+)$ villededepart.php?villedepart=$1 [L]

voili voilou, je suis en train de devenir fou, sachant que j'ai intervertit les 4 dernières lignes dans tous les sens, rien y fait

Pierre ::: Teletoday.com - A la télé ce soir !Ouvrir dans une nouvelle fenetre

cerise | Gaël
Modérateur

Photo de cerise

Inscrit le : 31/10/2008

# Le 08/04/2013 à 10:37

ça me semble carrément bizarre de mettre le chemin complet en RewriteBase.
Normalement,

soit ton fichier htaccess se trouve à la racine du site (donc ici /home/domain/www/ ) alors ton RewriteBase c'est / et tes règles de réécriture doivent indiquer le chemin complet vers le fichier

soit ton htaccess est dans le dossier /home/domain/www/test/fr/fr et ton RewriteBase c'est /test/fr/fr/ et là tu n'as pas besoin de mettre le chemin complet dans tes RewriteRule

Pour moi, une règle qui doit fonctionner

c'est le fichier htaccess dans www (à la racine)

et ensuite :

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteRule ^([a-z0-9-{}:]+)$ /test/fr/fr/villededarrivee.php?villedepart=$1&villeretour=$2 [L]

etc etc

(Message édité le 08-04-2013 à 11h23 par cerise)

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 08/04/2013 à 11:02

quelque chose comme ça ?


RewriteEngine on
RewriteBase /fr/fr/

RewriteRule ^(.+)/(.+)/$ /fr/fr/villededarrivee.php?villedepart=$1&villeretour=$2 [L]
RewriteRule ^(.+)/(.+)$ /fr/fr/$1/$2/ [L,R=301]
RewriteRule ^(.+)/$ /fr/fr/villededepart.php?villedepart=$1 [L]
RewriteRule ^(.+)$ /fr/fr/$1/ [L,R=301]

cerise | Gaël
Modérateur

Photo de cerise

Inscrit le : 31/10/2008

# Le 08/04/2013 à 11:22

je ne suis pas sûr que ^(.+) puisse marcher avec des dossiers virtuels (sans extension) si ?

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 08/04/2013 à 11:38

".+" = ce que tu veux au moins une fois, donc si.

mais bon, je préfère mettre ([a-z_0-9\-]+) (parce que là, tous les fichiers utiliseront cette règle, mais je reprenais son code ;))

linkfr | Pierre
Membre

Photo de linkfr

Inscrit le : 09/05/2005

# Le 08/04/2013 à 16:06

bon alors comme je m'en sortais pas, j'ai rererecherché sur google et j'ai trouve, trouvéééé, rewriting pour qu'il revienne

(j'avais aussi un fucking soucis de cache avec FF qui m'aurait fait chercher encore longtemps si j'étais pas passé par un autre navigateur pour tester, bref, chelou comme truc)

bref, voici ma soluce :
Options +FollowSymlinks
RewriteEngine on
RewriteRule fr/([a-zA-Z-]+)/([a-zA-Z-]+)/?$ fr/villededarrivee.php?villedepart=$1&villearrive=$2 [L]
RewriteRule fr/([a-zA-Z-]+)/?$ fr/villededepart.php?villedepart=$1 [L]

et je place le htaccess dans le 'premier' /fr/ et ca marche nickel avec ou sans / a la fin des urls

voilou

Un grand merci a Tonguide et à Cerise pour leur temps

Pierre ::: Teletoday.com - A la télé ce soir !Ouvrir dans une nouvelle fenetre

dbonin | David
Membre

Photo de dbonin

Inscrit le : 06/07/2006

# Le 08/04/2013 à 16:38

j'avais aussi un fucking soucis de cache avec FF qui m'aurait fait chercher encore longtemps si j'étais pas passé par un autre navigateur pour tester, bref, chelou comme truc


http://www.redirection-web.net/Ouvrir dans une nouvelle fenetre

C'est bien pratique dans ce genre de cas.

Évolution WebOuvrir dans une nouvelle fenetre | RedirectionOuvrir dans une nouvelle fenetre | PageRankOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 24/11/2024 4:28:54 | Généré en 14.24ms | Contacts | Mentions légales |