UrlRewriting : réécriture + redirection
Résolu
Sushi
-
Sushi -
Sushi -
Bonjour,
Je souhaite réécrire mes url de la manière suivante :
Pour toutes les url de la forme http://domaine.com/index-en.php
Les réécrire ainsi : http://domaine.com/en/index.php
Et faire pointer la page http://domaine.com/en/index.php sur http://domaine.com/index-en.php
Le but étant d'avoir des url propre sans pour autant changer les liens qui se trouvent déjà sur le site.
Pour le moment j'arrive à la structure suivante :
/www/.htaccess
/www/index-en.php
/www/en/.htaccess
Dans l'htaccess de la racine j'ai le contenu suivant :
Dans l'htacces du répertoire /en/ j'ai :
Vous l'aurez compris mon problème est que j'arrive dans une boucle sans fin et je ne sais pas comment faire pour m'en sortir.
Quelqu'un aurait un avis sur la question ?
Je vous remercie d'avance.
Je souhaite réécrire mes url de la manière suivante :
Pour toutes les url de la forme http://domaine.com/index-en.php
Les réécrire ainsi : http://domaine.com/en/index.php
Et faire pointer la page http://domaine.com/en/index.php sur http://domaine.com/index-en.php
Le but étant d'avoir des url propre sans pour autant changer les liens qui se trouvent déjà sur le site.
Pour le moment j'arrive à la structure suivante :
/www/.htaccess
/www/index-en.php
/www/en/.htaccess
Dans l'htaccess de la racine j'ai le contenu suivant :
RewriteCond %{HTTP_REFERER} !^/en/.*$
RewriteRule ^index-en.php$ /en/index.php [R]
Dans l'htacces du répertoire /en/ j'ai :
RewriteRule ^index.php$ http://test:8888/index-en.php [L]
Vous l'aurez compris mon problème est que j'arrive dans une boucle sans fin et je ne sais pas comment faire pour m'en sortir.
Quelqu'un aurait un avis sur la question ?
Je vous remercie d'avance.
4 réponses
Je n'ai pas très bien compris ton problème.
Qu'est-ce que tu voudrais ?
- On demande "/en/index.php" ; "/index-en.php" s'affiche (donc "/index-en.php" existe réellement)
- On demande "/index-en.php" ; "/en/index.php" s'affiche (donc "/en/index.php" existe réellement)
Qu'est-ce que tu voudrais ?
- On demande "/en/index.php" ; "/index-en.php" s'affiche (donc "/index-en.php" existe réellement)
- On demande "/index-en.php" ; "/en/index.php" s'affiche (donc "/en/index.php" existe réellement)
Navré ce n'est effectivement pas très claire.
1) L'utilisateur demande : /index-en.php
2) Le système change l'url (dans le navigateur) par : /en/index.php
3) Le système fait pointer la /en/index.php sur /index-en.php (qui est le seul fichier existant) (attention l'url ne change pas dans cet étape)
Le but est d'avoir une URL joliment formée sans avoir à changer les liens du site.
Pour le moment c'est le serpent qui se mord la queue, j'imagine qu'il est possible d'ajouter une condition dans le fichier /www/.htaccess pour éviter ce problème, mais je ne sais pas comment faire.
Merci de t'intéresser à mon cas Avion.
1) L'utilisateur demande : /index-en.php
2) Le système change l'url (dans le navigateur) par : /en/index.php
3) Le système fait pointer la /en/index.php sur /index-en.php (qui est le seul fichier existant) (attention l'url ne change pas dans cet étape)
Le but est d'avoir une URL joliment formée sans avoir à changer les liens du site.
Pour le moment c'est le serpent qui se mord la queue, j'imagine qu'il est possible d'ajouter une condition dans le fichier /www/.htaccess pour éviter ce problème, mais je ne sais pas comment faire.
Merci de t'intéresser à mon cas Avion.
Essaye avec ça :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} ^/index-en.php
RewriteRule ^(.*) http://example.com/en/index.php [L,R=301]
RewriteRule ^en/index.php /index-en.php
Merci beaucoup de ton aide Avion, je suis arrivé à une solution grâce à toi.
Dans /www/.htaccess on réécrit l'url :
Dans /www/en/.htaccess on fait pointer cette url virtuel sur la page effective
Merci de ton aide et meilleures salutations.
Dans /www/.htaccess on réécrit l'url :
RewriteEngine On RewriteRule ^en/index.php /index-en.php
Dans /www/en/.htaccess on fait pointer cette url virtuel sur la page effective
RewriteEngine on RewriteRule ^index.php /index-en.php [L]
Merci de ton aide et meilleures salutations.