[resolu] Convertir une URL en minuscule
14 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- philippe64
- Nouveau WRInaute

- Messages: 9
- Inscription: 23 Juil 2004
[resolu] Convertir une URL en minuscule
Suite à une modification de nommage d'un grand nombre de fichiers sur un site,
et ne voulant pas perdre l'ancien référencement, je souhaite établir une règle
de réécriture pour rediriger les moteurs de recherche vers les nouvelles URL.
Certains noms de fichiers pouvait contenir des majuscules, le nouveau nom est entièrement en minuscules.
Exemple :
Merci-Pour-Votre-Aide.html --> merci-pour-votre-aide.html
J'ai trouvé cette méthode en cherchant sur des forum, mais elle marche pas :
Ensuite, j'ai trouvé ça (tout seul) :
^([A-Z]+.*)\.html$ --> verifie que le premier caractère est une majuscule et que la chaine se termine par .html
\L$1\E.html --> pourquoi \L...\E ne fonctionne pas ? (censé passé en minuscule, non ?)
En bref, j'ai besoin d'un peu d'aide sur ce coup là... Merci d'avance
et ne voulant pas perdre l'ancien référencement, je souhaite établir une règle
de réécriture pour rediriger les moteurs de recherche vers les nouvelles URL.
Certains noms de fichiers pouvait contenir des majuscules, le nouveau nom est entièrement en minuscules.
Exemple :
Merci-Pour-Votre-Aide.html --> merci-pour-votre-aide.html
J'ai trouvé cette méthode en cherchant sur des forum, mais elle marche pas :
- Code: Tout sélectionner
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteCond $1 [A-Z]
RewriteRule ^(.*)\.html$ ${lowercase:$1}.html [R=301,L]
Ensuite, j'ai trouvé ça (tout seul) :
- Code: Tout sélectionner
RewriteEngine on
RewriteRule ^([A-Z]+.*)\.html$ \L$1\E.html [L]
^([A-Z]+.*)\.html$ --> verifie que le premier caractère est une majuscule et que la chaine se termine par .html
\L$1\E.html --> pourquoi \L...\E ne fonctionne pas ? (censé passé en minuscule, non ?)
En bref, j'ai besoin d'un peu d'aide sur ce coup là... Merci d'avance
Dernière édition par philippe64 le Jeu Déc 06, 2007 10:22, édité 1 fois.
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Salut, t'as aussi essayé ce mélange ? :p
- Code: Tout sélectionner
RewriteEngine on
RewriteRule ^(.*)\.html$ \L$1\E.html [L]
- philippe64
- Nouveau WRInaute

- Messages: 9
- Inscription: 23 Juil 2004
non, c'est la même chose, sauf que tu testes pas si la première lettre est en MAJUSCULES.
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Mais à la limite on s'en fou que la première lettre soit en majuscule et pas le reste non ? Quand tu passes tout en minuscule, il chipote pas !
Tu peux toujours verifier l'url dans ton code par après ! Si différent de ce que tu veux, tu rediriges 301 vers la bonne.
Tu peux toujours verifier l'url dans ton code par après ! Si différent de ce que tu veux, tu rediriges 301 vers la bonne.
- philippe64
- Nouveau WRInaute

- Messages: 9
- Inscription: 23 Juil 2004
Oui on s'en fou, mais ça marche pas quand même (j'ai testé)
C'est ça qui va pas : \L$1\E.html
C'est ça qui va pas : \L$1\E.html
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
philippe64 a écrit:Oui on s'en fou, mais ça marche pas quand même (j'ai testé)
C'est ça qui va pas : \L$1\E.html
tu l'a trouvé ou cette commande Perl ? qui doit marcher dans des fonctions PCRE mais j'ai un gros doute que cela puisse marcher dans 1 .htaccess
- philippe64
- Nouveau WRInaute

- Messages: 9
- Inscription: 23 Juil 2004
Je vois bien qu'il y a un problème... Il n'y a donc pas de solution pour un truc simple comme ça ?
C'est pas le premier post que je trouve sans réponse pour ce même cas. Il y a pas un super doué qui pourrait trouvé une solution ?
C'est pas le premier post que je trouve sans réponse pour ce même cas. Il y a pas un super doué qui pourrait trouvé une solution ?
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
fait le en php, c'est vite fait !!
je te fais la fonction pour que tu puisses tester si le premier caractere de l'uri est en majuscule ou en miniscule
je te fais la fonction pour que tu puisses tester si le premier caractere de l'uri est en majuscule ou en miniscule
- Code: Tout sélectionner
function CheckPremierCaractere($premier_caractere)
{
if (!eregi('^[A-Z]+$',$premier_caractere)) {return 0;}
else { return 1;}
}
-

rog - WRInaute passionné

- Messages: 1662
- Inscription: 21 Sep 2006
moi je ne pratique pas l'url rewrite mais cette formule me plait bien
j'ai remarqué que dans tes autres essais tu as viré la condition, as tu essayé celle ci sans la condition ?
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteCond $1 [A-Z]
RewriteRule ^(.*)\.html$ ${lowercase:$1}.html [R=301,L]
j'ai remarqué que dans tes autres essais tu as viré la condition, as tu essayé celle ci sans la condition ?
- philippe64
- Nouveau WRInaute

- Messages: 9
- Inscription: 23 Juil 2004
KOogar a écrit:fait le en php, c'est vite fait !! ...
J'aimerai bien le faire en PHP, mais je me heurte à mon ignorance...
Je ne sais pas comment on fait pour faire un appel à une fonction PHP depuis le htaccess (sinon niveau PHP ça va, je vais savoir
______
Pour répondre à rog,
J'ai bien sûr essayé avec la condition, mais c'est pareil.
- philippe64
- Nouveau WRInaute

- Messages: 9
- Inscription: 23 Juil 2004
Est-ce que quelqu'un sait si l'utilisation de "RewriteMap" nécessite un paramétrage spécial du serveur ?
Je précise que mod_rewrite est bien actif et que je n'ai pas d'autres soucis avec l'URL Rewriting.
J'ai posé la question à la personne qui gère mon hébergement, mais il ne sait pas.
Je précise que mod_rewrite est bien actif et que je n'ai pas d'autres soucis avec l'URL Rewriting.
J'ai posé la question à la personne qui gère mon hébergement, mais il ne sait pas.
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
pas tester mais je t'ai detailler le code. Place le en haut de ta page (header)
pas de code html avant.
pas de code html avant.
- Code: Tout sélectionner
<?php
// fonction qui test si le premier caratere est une majuscule ou minuscule
function CheckPremierCaractere($premier_caractere){
if (!eregi('^[A-Z]+$',$premier_caractere)) {return 0;}
else { return 1;}
}
// prend l'uri
$uri = $_SERVER["REQUEST_URI"];
// prend le premier caracterere (qui est placé en deuxieme car le premier est le '/'
$premier_caractere = $uri[1];
// si le premier caracterere est une Majuscule
if(CheckPremierCaractere($premier_caractere)) {
// passe l'uri en minuscule
$nouvelle_uri = strtolower($uri);
// la page est deplacée permanante
header("Status: 301 Moved Permanently");
// redirection avec l'uri en minuscule
header("Location: http://".$_SERVER['HTTP_HOST']."".$nouvelle_uri."");
}
?>
- philippe64
- Nouveau WRInaute

- Messages: 9
- Inscription: 23 Juil 2004
Merci KOogar, j'ai finalement compris comment faire grâce à ton précédent message qui a fait 'Tilt' dans ma tête...
voici le .htaccess
(il teste si la première lettre est une majuscule et si c'est le cas renvoie vers lowercase.php
Voici le fichier lowercase.php
voici le .htaccess
- Code: Tout sélectionner
RewriteEngine on
RewriteRule ^[A-Z]+.*\.html$ lowercase.php [L]
(il teste si la première lettre est une majuscule et si c'est le cas renvoie vers lowercase.php
Voici le fichier lowercase.php
- Code: Tout sélectionner
<?php
// prend l'uri puis la converti en minuscule
$uri = $_SERVER['REQUEST_URI'];
$uri_lc = strtolower($uri);
// la page est redirigée (+deplacée permanente)
header("Location: http://".$_SERVER['HTTP_HOST'].$uri_lc,TRUE,301);
?>
14 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 :
- [Résolu] Rewriting en minuscule
- Forcer les URL en minuscule
- Url en Minuscule et Majuscule : Evaluer le probleme
- majuscule minuscule url rewrting [résolut]
- [résolu]convertir une date
- [resolu]date en fr comprend pas comment convertir
- De majuscule a minuscule
- Rewriting : minuscule -> majuscule
- TITLE en majuscule ou minuscule ?
- minuscule majuscule et référencement Google
- Gmail Mobile : lire ses mails sur son mobile - 16-12-2005
- Tutoriel URL Rewriting - 01-05-2006
- Suite de l'article sur le fichier .htaccess : l'URL rewriting - 16-01-2003
- La balise d'URL canonique inter-sites - 16-12-2009
- Google n'indexe pas les URL qui se terminent par .0 ? - 13-06-2008
- L'API de goo.gl, le raccourcisseur d'URL de Google - 11-01-2011
- Guide d'optimisation des redirections pour le référencement - 31-05-2006
Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl
- Analyse de popularité
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées. - Transformer des simples citations de votre site en liens
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
