Bonjour à tous,
J'aurais besoins d'un petit coup de moins sur de l'urlrewriting car j'ai beau lire tous les forums et tuto je pense que certains points m'échappent et j'aimerais comprendre.
Voici ce que je voudrais faire :
mon url de base avec une fichier index.php se trouve ici : http://www.mondomaine.com/monsite/index.php
l'idée est de pouvoir récupérer LL, CC et CATEGORIE dans des variable get : lang, country et category
j'ai voulu définir les règles suivantes :
si j'arrive sur http://www.mondomaine.com/monsite/ et donc que je n'ai pas de code langue, je veux réécrite l'url en http://www.mondomaine.com/monsite/en-gb/
si j'ai mon url est http://www.mondomaine.com/monsite/en-gb/ je passe a mon fichier index.php les variable de lang => index.php?lang=en&country=gb
ensuite si mon url est http://www.mondomaine.com/monsite/category/
je veux reecrire l'url et rajouter /en-gb/ pour obtenir
http://www.mondomaine.com/monsite/en-gb/customcategory/ ce qui correspond a
http://www.mondomaine.com/monsite/index.php?lang=en&country=gb&category=customcategory
Bon a ce stage soit vous me traitez de tordu, soit je me complique la vie ou soit ma problématique est intéressante
Voici donc ce que j'ai écris dans mon htaccess :
ça fonctionne presque mais je ne récupère pas correctement les particules lang, country et category, en faite je les ai toutes directement dans category=en-gb/customcategory
A la limite je pourrais me contenter de cette dernier et la traiter en php mais je voudrais comprendre ou je cale sur la manière de traiter mon urlrewriting.
Ensuite les conditions suivantes sont un peu hasardeuse :
je pense que je pourrais utiliser une expression regulier un peu mieux formatée
mais la ça ne fonctionne carrément plus.
est-ce qu'il y a une différente importante entre
et
Par contre j'ai penser a mettre une balise base pour que me lien relatif soit toujours a partir de
http://www.mondomaine.com/monsite/
Si l'un d'entre vous peut me filer un coup de main au moins pour éclaircir et voir les erreurs ça m'aiderais beaucoup !
Modifié par cinetryx (15 Mar 2014 - 05:26)
J'aurais besoins d'un petit coup de moins sur de l'urlrewriting car j'ai beau lire tous les forums et tuto je pense que certains points m'échappent et j'aimerais comprendre.
Voici ce que je voudrais faire :
http://www.mondomaine.com/monsite/LL-CC/CATEGORIE
LL : code langue de type en|fr|gr
CC : code pays de type uk|fr|pt
CATEGORIE : une variable quelconque
mon url de base avec une fichier index.php se trouve ici : http://www.mondomaine.com/monsite/index.php
l'idée est de pouvoir récupérer LL, CC et CATEGORIE dans des variable get : lang, country et category
j'ai voulu définir les règles suivantes :
si j'arrive sur http://www.mondomaine.com/monsite/ et donc que je n'ai pas de code langue, je veux réécrite l'url en http://www.mondomaine.com/monsite/en-gb/
si j'ai mon url est http://www.mondomaine.com/monsite/en-gb/ je passe a mon fichier index.php les variable de lang => index.php?lang=en&country=gb
ensuite si mon url est http://www.mondomaine.com/monsite/category/
je veux reecrire l'url et rajouter /en-gb/ pour obtenir
http://www.mondomaine.com/monsite/en-gb/customcategory/ ce qui correspond a
http://www.mondomaine.com/monsite/index.php?lang=en&country=gb&category=customcategory
Bon a ce stage soit vous me traitez de tordu, soit je me complique la vie ou soit ma problématique est intéressante

Voici donc ce que j'ai écris dans mon htaccess :
RewriteEngine On
RewriteBase /monsite
RewriteCond %{REQUEST_URI} !^/category
RewriteRule ^(.+)/$ $1 [R=301,L]
RewriteRule ^$ 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})/(.+)$ 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})/?$ index.php?lang=$1&country=$2 [L,QSA]
RewriteCond %{REQUEST_URI} !^/category
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(.+)$ index.php?category=$1 [L,QSA]
ça fonctionne presque mais je ne récupère pas correctement les particules lang, country et category, en faite je les ai toutes directement dans category=en-gb/customcategory
A la limite je pourrais me contenter de cette dernier et la traiter en php mais je voudrais comprendre ou je cale sur la manière de traiter mon urlrewriting.
Ensuite les conditions suivantes sont un peu hasardeuse :
RewriteCond %{REQUEST_URI} !^/category
je pense que je pourrais utiliser une expression regulier un peu mieux formatée
RewriteCond %{REQUEST_URI} !^/monsite/([A-Za-z0-9_]{2})-([A-Za-z0-9_]{2})/?
mais la ça ne fonctionne carrément plus.
est-ce qu'il y a une différente importante entre
RewriteBase /monsite
et
RewriteBase /monsite[b]/[/b]
Par contre j'ai penser a mettre une balise base pour que me lien relatif soit toujours a partir de
http://www.mondomaine.com/monsite/
Si l'un d'entre vous peut me filer un coup de main au moins pour éclaircir et voir les erreurs ça m'aiderais beaucoup !
Modifié par cinetryx (15 Mar 2014 - 05:26)