Bonjour à tous,
J'aurais besoins d'un petit coup de pouce sur de l'urlrewriting car j'ai beau lire tous les forums et tuto je pense que certaines choses m'échappent et j'aimerais comprendre.
Voici ce que je voudrais faire :
http://www.mondomaine.com/subfolde [...] /p1/p2/etc
Code :
- LL : code langue de type en|fr|gr
- CC : code pays de type uk|fr|pt
- CATEGORIE : une variable quelconque et ses parametres facultatifs
|
J'ai donc mon url de base avec un fichier index.php : serait de pouvoir récupérer LL, CC et CATEGORIE dans des variables de type get : lang, country et category en partant des regles suivantes :
- si j'arrive sur http://www.mondomaine.com/subfolder/ (avec ou sans le slash de fin), je veux réécrite l'url par default en http://www.mondomaine.com/subfolder/en-gb/
A partir de cette premier regles je peux deja recuperer les variables en get et les passer a mon index comme ceci index.php?lang=en&country=gb
- ensuite si mon url est http://www.mondomaine.com/subfolder/category/
je veux réécrire l'url et rajouter systematiquement par defaut /en-gb/ pour obtenir http://www.mondomaine.com/subfolde [...] mcategory/
ce qui correspond en realité a http://www.mondomaine.com/subfolde [...] omcategory
je pourrais aussi avoir autre chose que customcategory comme par exemple :
http://www.mondomaine.com/subfolde [...] m1/param2/
pour en réalité avoir http://www.mondomaine.com/subfolde [...] am1/param2
Bon a ce stade soit vous me traitez de tordu et je me complique la vie ou soit le sujet est intéressante [biggrin]
Voici donc ce que j'ai écris dans mon htaccess :
Code :
- RewriteEngine On
- #Ne fonctionne pas
- #RewriteBase /subfolder
- RewriteCond %{REQUEST_URI} !^/(.+)$
- #Je ne saisi pas bien la différence
- #RewriteRule ^(.+)/$ /$1 [R=301,L]
- RewriteRule ^(.*)/$ /$1 [L,R=301]
- RewriteRule ^$ /subfolder/en-gb [L,R=301]
- RewriteCond %{REQUEST_URI} !^/category
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^([A-Za-z0-9_]{2})-([A-Za-z0-9_]{2})/?(.+)$ /subfolder/index.php?lang=$1&country=$2&category=$3 [L,QSA]
- RewriteCond %{REQUEST_URI} !^/category
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^([a-zA-Z]{2})-([a-zA-Z]{2})/?$ /subfolder/index.php?lang=$1&country=$2 [L,QSA]
- RewriteCond %{REQUEST_URI} !^/category
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^/?(.+)$ /subfolder/index.php?category=$1 [L,QSA]
|
ça fonctionne mais je ne suis pas sur que les conditions et les règles soient correctement écrites.
La conditions suivante est un peu hasardeuse :
Code :
- RewriteCond %{REQUEST_URI} !^/category
|
je pense que je pourrais utiliser une expression regulier un peu mieux formatée
Code :
- RewriteCond %{REQUEST_URI} !^/subfolder/([A-Za-z0-9_]{2})-([A-Za-z0-9_]{2})/?
|
mais impossible de le faire fonctionner ...
est-ce qu'il y a une différence importante entre
Code :
- RewriteBase /monsite
|
et
Code :
- RewriteBase /monsite/
|
J'ai également pensé à mettre une balise base pour que mes liens relatifs soit toujours a partir de http://www.mondomaine.com/subfolder/
Est-ce que l'un d'entre vous peut me donner son avis et me guider un peu pour que je puisse comprendre et réussir à écrire correctement mes règles de réécritures ?
Merci
---------------
renaîtra de ses cendres - lol