Reécriture pour simuler un répertoire
22 messages
• Page 1 sur 2 • 1, 2
- jiojioforever
- WRInaute impliqué

- Messages: 523
- Inscription: 23 Nov 2006
Reécriture pour simuler un répertoire
Bonjour,
je suis débutant en urlrewritting.
j'utilise cette méthode pour mes sites (enfin des choses pas trop pousser) mais la je bloque sur ce cas.
J'ai dans ma bdd 5 6 catégorie différentes que je voudrais assimiler à des dossiers
exemple :
www.monsite.com/categorie1
www.monsite.com/categorie2
www.monsite.com/categorie3
www.monsite.com/categorie4
...
j'avais tenté ce code pour ce cas mais il ne semble pas fonctionner :
RewriteEngine on
RewriteRule ^(.+)$ album-photos.php?nom_cat=$1 [L,QSA]
____________________
Etape suivante, quand je suis sur la page en question, je propose différents albums concernant cette catégorie.
Je voudrais prendre le nom des albums pour faire les urls suivantes :
www.monsite.com/categorie1/nomalbum1.htm
www.monsite.com/categorie1/nomalbum2.htm
www.monsite.com/categorie1/nomalbum3.htm
....
J'avais tenté ce code mais rien...
RewriteEngine on
RewriteRule ^(.+)-(.+)+)\.htm$ selection-album.php?nom_alb=$2 [L,QSA]
Une autre petite question, est ce que j'ai besoin de passer le num_cat et num_alb dans l'url pour récupérer les infos via ma requête ?
Merci d'avance
je suis débutant en urlrewritting.
j'utilise cette méthode pour mes sites (enfin des choses pas trop pousser) mais la je bloque sur ce cas.
J'ai dans ma bdd 5 6 catégorie différentes que je voudrais assimiler à des dossiers
exemple :
www.monsite.com/categorie1
www.monsite.com/categorie2
www.monsite.com/categorie3
www.monsite.com/categorie4
...
j'avais tenté ce code pour ce cas mais il ne semble pas fonctionner :
RewriteEngine on
RewriteRule ^(.+)$ album-photos.php?nom_cat=$1 [L,QSA]
____________________
Etape suivante, quand je suis sur la page en question, je propose différents albums concernant cette catégorie.
Je voudrais prendre le nom des albums pour faire les urls suivantes :
www.monsite.com/categorie1/nomalbum1.htm
www.monsite.com/categorie1/nomalbum2.htm
www.monsite.com/categorie1/nomalbum3.htm
....
J'avais tenté ce code mais rien...
RewriteEngine on
RewriteRule ^(.+)-(.+)+)\.htm$ selection-album.php?nom_alb=$2 [L,QSA]
Une autre petite question, est ce que j'ai besoin de passer le num_cat et num_alb dans l'url pour récupérer les infos via ma requête ?
Merci d'avance
-

seebz - WRInaute impliqué

- Messages: 808
- Inscription: 15 Avr 2007
Re: Reécriture pour simuler un répertoire
La première règle semble bonne.
La seconde ne devrait pas plutot être :
La seconde ne devrait pas plutot être :
- Code: Tout sélectionner
RewriteRule ^(.+)/(.+)\.htm$ selection-album.php?nom_alb=$2 [L,QSA]
- jiojioforever
- WRInaute impliqué

- Messages: 523
- Inscription: 23 Nov 2006
Re: Reécriture pour simuler un répertoire
Le premier ne passe pas non plus...
enfin l'adresse exacte est : www.monsite.com/dossier/categorie1
il y a quelque chose à modifier sur la règle ?
avec celle ci ma page www.monsite.com/dossier m'envoie une erreur 404
enfin l'adresse exacte est : www.monsite.com/dossier/categorie1
il y a quelque chose à modifier sur la règle ?
avec celle ci ma page www.monsite.com/dossier m'envoie une erreur 404
- jiojioforever
- WRInaute impliqué

- Messages: 523
- Inscription: 23 Nov 2006
Re: Reécriture pour simuler un répertoire
Pour la deuxième je pars plus sur un truc du genre :
RewriteRule ^(.+)/(.+)-([0-9]+)\.php$ affichage-album.php?nom_cat=$1&nom_alb=$2&num_alb=$3 [L,QSA]
mais marche pas non plus ^^
RewriteRule ^(.+)/(.+)-([0-9]+)\.php$ affichage-album.php?nom_cat=$1&nom_alb=$2&num_alb=$3 [L,QSA]
mais marche pas non plus ^^
- jiojioforever
- WRInaute impliqué

- Messages: 523
- Inscription: 23 Nov 2006
Re: Reécriture pour simuler un répertoire
Pour le premier
www.monsite.com/dossier/categorie
j'ai essayé
RewriteEngine on
RewriteRule ^dossier/(.+)$ album-photos.php?lib_cat=$1 [L,QSA]
mais rien non plus
www.monsite.com/dossier/categorie
j'ai essayé
RewriteEngine on
RewriteRule ^dossier/(.+)$ album-photos.php?lib_cat=$1 [L,QSA]
mais rien non plus
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
Re: Reécriture pour simuler un répertoire
pour le virtuel tu dois mettre dans ton <head> :
<link rel="canonical" href="http://www.tonsite.com/">
la réécriture:
-www.monsite.com/categorie1/nomalbum1.htm
<link rel="canonical" href="http://www.tonsite.com/">
la réécriture:
-www.monsite.com/categorie1/nomalbum1.htm
- Code: Tout sélectionner
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/nomalbum([0-9]+)\.htm$ album-photos.php?id=$2 [L]
- thomasg
- Nouveau WRInaute

- Messages: 9
- Inscription: 11 Jan 2010
Re: Reécriture pour simuler un répertoire
Bonsoir à tous,
Après avoir longuement cherché sur le net, je trouve enfin ce post qui correspond à peu près à ce que je cherche à faire.
J'aimerai en fait, simuler une arborescence dans la gestion de mon URLRewrinting. La prise en compte de l'arborescence fonctionne, mais lorsque j'accède à une page qui simule un niveau de dossier, les fichiers en include ne sont plus pris en compte (puisqu'il ne se trouve évidement pas dans le faux sous-repertoire), les liens relatifs comportent deux fois le dossier en question, ... .
Comment faire pour que la fausse arbo ne soit pas prise en compte par les scripts & co ? Est-ce que quelqu'un à déjà rencontré ce cas de figure ?
Voici mon URLRwritring actuel :
Merci à tous,
Thomas.
EDIT :
Après avoir chercher davantage, j'ai lu quelquepart que sur un mutualisé OVH, il fallait forcément préciser les URL destinations en absolue, mon .htaccess est donc maintenant :
Les liens sont rétablis, mais soucis : l'url affichée dans le navigateur correspond à celle censée être masquée, c'est à dire :
http://www.monsite.fr/pilote/index.php?p=5
Une idée ?
Merci
Après avoir longuement cherché sur le net, je trouve enfin ce post qui correspond à peu près à ce que je cherche à faire.
J'aimerai en fait, simuler une arborescence dans la gestion de mon URLRewrinting. La prise en compte de l'arborescence fonctionne, mais lorsque j'accède à une page qui simule un niveau de dossier, les fichiers en include ne sont plus pris en compte (puisqu'il ne se trouve évidement pas dans le faux sous-repertoire), les liens relatifs comportent deux fois le dossier en question, ... .
Comment faire pour que la fausse arbo ne soit pas prise en compte par les scripts & co ? Est-ce que quelqu'un à déjà rencontré ce cas de figure ?
Voici mon URLRwritring actuel :
- Code: Tout sélectionner
# Interdit le listage d'un répertoire
IndexIgnore *
# Le serveur doit suivre les liens symboliques :
Options +FollowSymlinks
# Activation du module de réécriture d'URL :
RewriteEngine on
#Règles de réécriture
RewriteRule ^accueil.html$ ?p=5 [L]
RewriteRule ^contact.html$ ?p=8 [L]
RewriteRule ^produits.html$ ?p=11 [L]
RewriteRule ^produits/page1.html$ ?sp=4 [L]
RewriteRule ^produits/page2.html$ ?sp=5 [L]
RewriteRule ^produits/page3.html$ ?sp=6 [L]
Merci à tous,
Thomas.
EDIT :
Après avoir chercher davantage, j'ai lu quelquepart que sur un mutualisé OVH, il fallait forcément préciser les URL destinations en absolue, mon .htaccess est donc maintenant :
- Code: Tout sélectionner
# Interdit le listage d'un répertoire
IndexIgnore *
# Le serveur doit suivre les liens symboliques :
Options +FollowSymlinks
# Activation du module de réécriture d'URL :
RewriteEngine on
#Règles de réécriture
RewriteRule ^accueil\.html$ http://www.monsite.fr/pilote/index.php?p=5 [L]
RewriteRule ^contact\.html$ http://www.monsite.fr/pilote/index.php?p=8 [L]
RewriteRule ^produits\.html$ http://www.monsite.fr/pilote/index.php?p=11 [L]
RewriteRule ^produits/page1\.html$ http://www.monsite.fr/pilote/index.php?sp=4 [L]
RewriteRule ^produits/page2\.html$ http://www.monsite.fr/pilote/index.php?sp=5 [L]
RewriteRule ^produits/page3\.html$ http://www.monsite.fr/pilote/index.php?sp=6 [L]
Les liens sont rétablis, mais soucis : l'url affichée dans le navigateur correspond à celle censée être masquée, c'est à dire :
http://www.monsite.fr/pilote/index.php?p=5
Une idée ?
Merci
Dernière édition par thomasg le Lun Jan 11, 2010 2:18, édité 4 fois.
- thomasg
- Nouveau WRInaute

- Messages: 9
- Inscription: 11 Jan 2010
Re: Reécriture pour simuler un répertoire
KOogar a écrit:pour le virtuel tu dois mettre dans ton <head> :
<link rel="canonical" href="http://www.tonsite.com/">
la réécriture:
-www.monsite.com/categorie1/nomalbum1.htm
- Code: Tout sélectionner
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/nomalbum([0-9]+)\.htm$ album-photos.php?id=$2 [L]
KOogar, peux-tu expliquer ton code en détail, stp ?
Merci
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
Re: Reécriture pour simuler un répertoire
Partir du principe que les regles ne changent pas de l'ordinaire, il faut écrire ses regles sans changer ses habitudes. Seul 2 points sont a voir pour que la simulation fonctionne normalement. Le premier est d'ajouter une condition supplémentaire dans le fichier .htaccess et la seconde est d'ajouter un tag supplémentaire dans le <head> des documents html, voyons le détail:
1° Pour qu'une règle de réécriture soit appliquée si la requête ne correspond pas a un répertoire existant (ce qui est notre cas) il faut ajouter avant la règle de réécriture la condition suivante :
RewriteCond %{REQUEST_FILENAME} !-d
2° Il faut aussi ajouter dans le <head> la ligne suivante en mettant l'url du site
<link rel="canonical" href="http://www.tonsite.com/">
en mettant la racine en url canonicale, le slash "/" devient la racine. il faut maintenant appeler les fichiers sans oublier d'ajouter le "/" slash : <img scr="/images/images.jpg">
- thomasg
- Nouveau WRInaute

- Messages: 9
- Inscription: 11 Jan 2010
Re: Reécriture pour simuler un répertoire
KOogar a écrit::D
Partir du principe que les regles ne changent pas de l'ordinaire, il faut écrire ses regles sans changer ses habitudes. Seul 2 points sont a voir pour que la simulation fonctionne normalement. Le premier est d'ajouter une condition supplémentaire dans le fichier .htaccess et la seconde est d'ajouter un tag supplémentaire dans le <head> des documents html, voyons le détail:
1° Pour qu'une règle de réécriture soit appliquée si la requête ne correspond pas a un répertoire existant (ce qui est notre cas) il faut ajouter avant la règle de réécriture la condition suivante :
RewriteCond %{REQUEST_FILENAME} !-d
2° Il faut aussi ajouter dans le <head> la ligne suivante en mettant l'url du site
<link rel="canonical" href="http://www.tonsite.com/">
en mettant la racine en url canonicale, le slash "/" devient la racine. il faut maintenant appeler les fichiers sans oublier d'ajouter le "/" slash : <img scr="/images/images.jpg">
En appliquant cette méthode, j'obtiens un comportement vraiment bizarre.
J'ai ajouté les conditions pour le rewrite, ajouter la link canonical (incluant un sous-dossier, dans mon cas : "http://www.monsites.fr/dossier/").
Si je mets un / devant mes URLs relative, il m'affiche le contenu d'une arborescence en dessous. Si je ne mets pas le / il m'affiche le bon contenu mais sans les liens vers les CCS et les fichiers en include/require sont introuvable. Il prend toujours le faux dossier comme un vrai dossier.
Une idée ?
Merci.
Thomas.
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
Re: Reécriture pour simuler un répertoire
dans ce cas il faut que le dossier existe physiquement
<link rel="canonical" href="http://www.tonsite.com/dossier/">
si il s'agit d'un dossier virtuel il ne faut rien mettre
<link rel="canonical" href="http://www.tonsite.com/">
et pour le style
<link href="/style.css" rel="stylesheet" type="text/css" />
<link rel="canonical" href="http://www.tonsite.com/dossier/">
si il s'agit d'un dossier virtuel il ne faut rien mettre
<link rel="canonical" href="http://www.tonsite.com/">
et pour le style
<link href="/style.css" rel="stylesheet" type="text/css" />
- thomasg
- Nouveau WRInaute

- Messages: 9
- Inscription: 11 Jan 2010
Re: Reécriture pour simuler un répertoire
KOogar a écrit:dans ce cas il faut que le dossier existe physiquement
<link rel="canonical" href="http://www.tonsite.com/dossier/">
si il s'agit d'un dossier virtuel il ne faut rien mettre
<link rel="canonical" href="http://www.tonsite.com/">
et pour le style
<link href="/style.css" rel="stylesheet" type="text/css" />
Le dossier précisé dans le canonical existe vraiment, c'est dans celui-ci qu'est mon site, en fait.
si je mets un / devant les styles,
<link href="/css/style.css" rel="stylesheet" type="text/css" />
il tente (et n'y parvient pas) de trouver ma css à cette adresse :
http://www.monsite.fr/css/style.css
Or, ma css est à cette adresse :
http://www.monsite.fr/dossier/css/style.css
Il ne prend pas en compte le dossier que je lui donne dans le canonical :
<link rel="canonical" href="http://www.monsite.fr/dossier/">
En tout cas, merci pour ton aide. J'aime beaucoup ta façon de préciser le code à chaque variante...
- jiojioforever
- WRInaute impliqué

- Messages: 523
- Inscription: 23 Nov 2006
Re: Reécriture pour simuler un répertoire
Je ne sais pas si vous connaissez le site le site : http://www.generateit.net/mod-rewrite/
il permet de générer les urlrewritting
il me propose de mettre mon url dynamique : http://www.domaine.com/photo-vacance/selection-categorie.php?nom_cat=ahaha
et après plusieurs configs je mets comme je le souhaitais http://www.domaine.com/photo-vacance/ahaha
Le dossier "photo-vacance" existe bien...
voici ce qu'il me propose... maissss ça ne marche pas :
RewriteEngine On
RewriteRule ^photo-vacance/([^/]*)$ /photo-vacance/selection-categorie.php?nom_cat=$1 [L]
j'ai un ami qui me proposer de partir sur ça : RewriteRule ^/(.+)/(.+)[/]?$ selection-categorie.php?nom_cat=$2 [L,QSA]
il permet de générer les urlrewritting
il me propose de mettre mon url dynamique : http://www.domaine.com/photo-vacance/selection-categorie.php?nom_cat=ahaha
et après plusieurs configs je mets comme je le souhaitais http://www.domaine.com/photo-vacance/ahaha
Le dossier "photo-vacance" existe bien...
voici ce qu'il me propose... maissss ça ne marche pas :
RewriteEngine On
RewriteRule ^photo-vacance/([^/]*)$ /photo-vacance/selection-categorie.php?nom_cat=$1 [L]
j'ai un ami qui me proposer de partir sur ça : RewriteRule ^/(.+)/(.+)[/]?$ selection-categorie.php?nom_cat=$2 [L,QSA]
- thomasg
- Nouveau WRInaute

- Messages: 9
- Inscription: 11 Jan 2010
Re: Reécriture pour simuler un répertoire
jiojioforever a écrit:Je ne sais pas si vous connaissez le site le site : http://www.generateit.net/mod-rewrite/
il permet de générer les urlrewritting
il me propose de mettre mon url dynamique : http://www.domaine.com/photo-vacance/selection-categorie.php?nom_cat=ahaha
et après plusieurs configs je mets comme je le souhaitais http://www.domaine.com/photo-vacance/ahaha
Le dossier "photo-vacance" existe bien...
voici ce qu'il me propose... maissss ça ne marche pas :
RewriteEngine On
RewriteRule ^photo-vacance/([^/]*)$ /photo-vacance/selection-categorie.php?nom_cat=$1 [L]
j'ai un ami qui me proposer de partir sur ça : RewriteRule ^/(.+)/(.+)[/]?$ selection-categorie.php?nom_cat=$2 [L,QSA]
Je pense que c'est le même soucis que le miens, un soucis de répertoire virtuel, ici le 1er photo-vacance dans ce que te propose le site.
Essai de mettre la fameuse condition citée plus haut pour voir si ça marche. Bonne chance
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
Re: Reécriture pour simuler un répertoire
thomasg a écrit:Il ne prend pas en compte le dossier que je lui donne dans le canonical :
<link rel="canonical" href="http://www.monsite.fr/dossier/">
tu dois te planter quelque part, je n'avais jamais utiliser de rep physique pour du virtuel, j'ai fait un test et come attendue voici le résultat:
"test" est un répertoire physique
"rep1" "rep2" "rep3" sont des virtuels
la regle
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/(.+)/(.+)/contact\.html$ /test/contact.php [L]
le header
<link rel="canonical" href="http://www.site.com/test/">
<link href="/style.css" rel="stylesheet" type="text/css" />
LE TEST :
-http://www.annevalerie.com/test/rep1/rep2/rep3/contact.html
22 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- réecriture repertoire et extension
- Empêcher la réécriture dans un répertoire
- Ignorer un repertoire lors de la reecriture
- Réécriture de noms de répertoire, est-ce possible ?
- [RESOLU] empecher la réécriture dans un repertoire ?
- reecriture sur tout sauf un répertoire ?
- [résolu] Gérer la réécriture sur un répertoire temporaire
- reecriture urls sous forme de répertoire (flickr like)
- réécriture d'une url qui se trouve dans le répertoire parent
- simuler google
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
