RewriteRule & répertoire
8 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- Winks
- Nouveau WRInaute

- Messages: 5
- Inscription: 6 Juil 2009
RewriteRule & répertoire
Bonjour à tous,
je découvre peu à peu l'url rewriting et je suis confronté depuis quelques heures à un problème sans trouver de réponse ici ou ailleurs... J'aimerais faire cohabiter plusieurs règles qui, séparément fonctionnent. Mais qui, une fois dans le même ficher .htaccess renvoient vers une 404.
La première règle c'est :
La deuxième comporte très certainement une faille. J'aimerais accèder à l'index du répertoire rep1 depuis la racine du site
ex: ../rep1.html à la place de ../dir/rep1/index.php
=> est ce bien :
Enfin, la 3eme ressemble fortement à la 2ème mais est un peu plus complexe.
ex: ../rep1-rep2.html à la place de ../dir/rep1/rep2/index.php
=> est ce bien :
Où ai je faux svp? Je n'arrive pas à voir ou je fais une (des) errreurs. Pourriez vous m'aider svp...
je découvre peu à peu l'url rewriting et je suis confronté depuis quelques heures à un problème sans trouver de réponse ici ou ailleurs... J'aimerais faire cohabiter plusieurs règles qui, séparément fonctionnent. Mais qui, une fois dans le même ficher .htaccess renvoient vers une 404.
La première règle c'est :
- Code: Tout sélectionner
RewriteRule ^(.*)\.html$ /$1.php [QSA,L,R=301]
La deuxième comporte très certainement une faille. J'aimerais accèder à l'index du répertoire rep1 depuis la racine du site
ex: ../rep1.html à la place de ../dir/rep1/index.php
=> est ce bien :
- Code: Tout sélectionner
RewriteRule ^(.*)\.html$ /dir/$1/index.php [QSA,L,R=301]
Enfin, la 3eme ressemble fortement à la 2ème mais est un peu plus complexe.
ex: ../rep1-rep2.html à la place de ../dir/rep1/rep2/index.php
=> est ce bien :
- Code: Tout sélectionner
RewriteRule ^(.*)-(.*)\.html$ /dir/$1/$2/index.php [QSA,L,R=301]
Où ai je faux svp? Je n'arrive pas à voir ou je fais une (des) errreurs. Pourriez vous m'aider svp...
-

forty - WRInaute passionné

- Messages: 1701
- Inscription: 30 Oct 2008
Re: RewriteRule & répertoire
attention car les règles sont évaluées dans l'ordre. La première qui "match" est appliquée. Les deux premières règles ne sont pas compatibles sans ajouter une condition. Essaye d'ajouter une condition pour tester si le fichier .php existe :
- Code: Tout sélectionner
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*)\.html$ /$1.php [QSA,L,R=301]
RewriteCond %{DOCUMENT_ROOT}/dir/$1/index.php -f
RewriteRule ^(.*)\.html$ /dir/$1/index.php [QSA,L,R=301]
RewriteCond %{DOCUMENT_ROOT}/dir/$1/$2/index.php -f
RewriteRule ^(.*)-(.*)\.html$ /dir/$1/$2/index.php [QSA,L,R=301]
-

forty - WRInaute passionné

- Messages: 1701
- Inscription: 30 Oct 2008
Re: RewriteRule & répertoire
essaye (il ne peut pas y avoir de tiret dans répertoire 1) :
- Code: Tout sélectionner
RewriteRule ^([^-]*)-(.*)\.html$ /dir/$1/$2/index.php [QSA,L,R=301]
- Winks
- Nouveau WRInaute

- Messages: 5
- Inscription: 6 Juil 2009
Re: RewriteRule & répertoire
forty a écrit:essaye (il ne peut pas y avoir de tiret dans répertoire 1) :
- Code: Tout sélectionner
RewriteRule ^([^-]*)-(.*)\.html$ /dir/$1/$2/index.php [QSA,L,R=301]
le souci c'est que dans presque tous mes répertoires $1, il y a un tiret
et il y a en a 1 fois sur 2 dans mes répertoires $2
il y a une solution stp?
-

forty - WRInaute passionné

- Messages: 1701
- Inscription: 30 Oct 2008
Re: RewriteRule & répertoire
essaye avec :
sinon change de séparateur pour en prendre un qui n'existe pas dans $1
- Code: Tout sélectionner
RewriteCond %{DOCUMENT_ROOT}/dir/$1/$2/index.php -f
RewriteRule ^([^-]*)-(.*)\.html$ /dir/$1/$2/index.php [QSA,L,R=301]
RewriteCond %{DOCUMENT_ROOT}/dir/$1/$2/index.php -f
RewriteRule ^([^-]*-[^-]*)-(.*)\.html$ /dir/$1/$2/index.php [QSA,L,R=301]
sinon change de séparateur pour en prendre un qui n'existe pas dans $1
- Winks
- Nouveau WRInaute

- Messages: 5
- Inscription: 6 Juil 2009
Re: RewriteRule & répertoire
- Code: Tout sélectionner
RewriteRule ^([^-]*-[^-]*)-(.*)\.html$ /dir/$1/$2/index.php [QSA,L]
c'est bon, ça fonctionne comme je voulais.
Merci Beaucoup Forty
8 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- rewriterule dans un repertoire
- 404 malgré RewriteRule si répertoire absent
- Plantage de mon répertoire suite à rewriterule sur htaccess
- Réecrire l'url d'un répertoire vers le répertoire parent
- [résolu] Forcer /repertoire, interdire /repertoire/index.php
- repertoire + nomage des URLs dans ce repertoire
- Liens vers repertoire/ ou ... repertoire/index.php
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
