linkfr
| Membre
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 ! |
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
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 ! |
linkfr
| Pierre Membre
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 ! |
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
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 ! |
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
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
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 ! |
cerise
| Gaël Modérateur
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
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
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 ! |
dbonin
| David Membre
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/
C'est bien pratique dans ce genre de cas. Évolution Web | Redirection | PageRank |