|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
obi WRInaute occasionnel

Inscrit le: 26 Juil 2006 Messages: 238 Localisation: Toulouse
|
Posté le : Mer Aoû 23, 2006 14:17 Sujet du message: Enlever les .html: Tirage dans le pied ? |
|
|
J'ai toujours trouvé les url finissant en .html ou .php ou .truc moches et inutiles, bref, indésirables. Donc, ni une, n'hideux, je mets cette règle dans mon .htaccess:
| Code: |
| RewriteRule ^([^.]*)([^/])$ /$1$2.html |
Et change tous mes liens générés (ceux de navigation en fait)
C'est un site à fort PR, et j'ai peur d'avoir fait une connerie, ça me duplique le contenu ça non ? Et si je mets un R=301, c'est l'url avec .html au bout qui est affichée et retenue par les moteurs, c'est l'inverse que je voudrais faire. Qqun a une idée ?
Heuh, le site c'est -http://www.esterel-technologies.com |
|
| |
|
 |
mr_go WRInaute accro

Inscrit le: 21 Sep 2005 Messages: 1944 Localisation: Sous le soleil
|
Posté le : Mer Aoû 23, 2006 14:38 Sujet du message: Enlever les .html: Tirage dans le pied ? |
|
|
Ils existent physiquement ces fichier .html ?
Si c'est le cas, oui, c'est du contenu dupliqué.
 |
|
| |
|
 |
obi WRInaute occasionnel

Inscrit le: 26 Juil 2006 Messages: 238 Localisation: Toulouse
|
Posté le : Mer Aoû 23, 2006 14:43 Sujet du message: Enlever les .html: Tirage dans le pied ? |
|
|
Hélas oui. Est-ce qu'un truc comme ça marcherait:
1. Je renomme tous mes .html en .php (il se trouve que c'est du php, donc pourquoi pas)
2. Je cascade 2 règles:
| Code: |
RewriteRule ^(.*).html$ /$1 [R=301]
RewriteRule ^([^.]*)([^/])$ /$1$2.php |
Du coup la première me fait bien un 301 vers l'URL bien écrite, la deuxième me fait la redirection vers l'url physique. |
|
| |
|
 |
mr_go WRInaute accro

Inscrit le: 21 Sep 2005 Messages: 1944 Localisation: Sous le soleil
|
Posté le : Mer Aoû 23, 2006 14:53 Sujet du message: Enlever les .html: Tirage dans le pied ? |
|
|
Tu peux tester cela aussi
| Code: |
## REDIRECTION ##
RedirectMatch 301 ^(.*)\.html$ http://www.example.com/$1
## REECRITURE ##
RewriteRule ^/(.*)$ /$1.php [L]
|
|
|
| |
|
 |
obi WRInaute occasionnel

Inscrit le: 26 Juil 2006 Messages: 238 Localisation: Toulouse
|
Posté le : Mer Aoû 23, 2006 14:59 Sujet du message: Enlever les .html: Tirage dans le pied ? |
|
|
Sheisse, j'ai fait tomber mon serveur avec ces c*nneries de boucles infinies  |
|
| |
|
 |
obi WRInaute occasionnel

Inscrit le: 26 Juil 2006 Messages: 238 Localisation: Toulouse
|
Posté le : Mer Aoû 23, 2006 15:31 Sujet du message: Enlever les .html: Tirage dans le pied ? |
|
|
Effectivement, ceci fonctionne bien chez moi:
| Code: |
## REDIRECTION ##
RedirectMatch 301 ^/plonk\.html$ /plonk
## REECRITURE ##
RewriteRule ^plonk$ /plonk.php [L] |
Y'a plus qu'a, merci ! |
|
| |
|
 |
mr_go WRInaute accro

Inscrit le: 21 Sep 2005 Messages: 1944 Localisation: Sous le soleil
|
Posté le : Mer Aoû 23, 2006 15:46 Sujet du message: Enlever les .html: Tirage dans le pied ? |
|
|
| De nada. Fais attention à la deuxième clause, elle risque aussi de faire une boucle en fonction de ta regexp. |
|
| |
|
 |
obi WRInaute occasionnel

Inscrit le: 26 Juil 2006 Messages: 238 Localisation: Toulouse
|
Posté le : Mer Aoû 23, 2006 16:17 Sujet du message: Enlever les .html: Tirage dans le pied ? |
|
|
Si ca peut servir à d'autres, j'ai fait un petit script qui vérifie qu'il n'y a pas de conflit avant de renommer des .hml en .php
| Code: |
#!/bin/bash
count=0
for f in $(find . -name "*.html")
do
p=$(dirname $f)/$(basename $f html)php
[ -f $p ] && echo "conflict $p / $f" || count=$(($count +1))
done
echo "$count files ok"
|
| Citation: |
$bash check.sh
conflict ./forum/lang/English/index.php / ./forum/lang/English/index.html
418 files ok
|
Une fois les conflits résolus, on peut y aller bourrin:
| Code: |
#!/bin/bash
for f in $(find . -name "*.html")
do
p=$(dirname $f)/$(basename $f html)php
mv $f $p
done
|
|
|
| |
|
 |
| |
|
|