Htaccess rewrite php en html

11 réponses
AuteurMessage

FavXP |
Membre

Photo de FavXP

Inscrit le : 18/07/2008

# Le 06/09/2012 à 16:15

Bonjour,

Je me prend le choux pour mettre un rewrite pour mettre toutes mes pages .php en html.

A chaque fois j'ai droit à une 404, si quelqu'un pouvait m'éclaircir la chose.

Voilà ce que j'ai testé

RewriteRule ^(.*)\.html$ $1.php [R=301,L]

RewriteRule ^(.*)\.html$ /$1.php [R=301,L]


RewriteRule ^([a-z]*)\.html$ /$1.php [L]

RewriteRule ^([a-z]*)\.html$ /$1.php [R=301,L]


RewriteRule ^(.*)\.php$ $1.html [R=permanent]

En remerciant l'âme charitable ^^

CDT jean.

terry | Térence
Membre

Photo de terry

Inscrit le : 16/06/2012

# Le 06/09/2012 à 17:07

La première parait bien, mais tu n'es pas obligé de spécifier le domaine quand tu fais une 301 ?

A la limite, essaie la première en enlevant le R=301 ?

Je ne peut pas tester je suis sous nginx.

Crédit ImmobilierOuvrir dans une nouvelle fenetre | Courtage en CréditOuvrir dans une nouvelle fenetre

FavXP | Jean
Membre

Photo de FavXP

Inscrit le : 18/07/2008

# Le 06/09/2012 à 17:12

Arfff, je m'obstinais à mettre 301

-Alors que tout simplement c'était :
RewriteRule ^(.*).html$ $1.php [L]

-Fonctionne également comme ceci :
RewriteRule ^(.+).html$ $1.php [L]


Avec le code en entier pour celles et ceux qui passent par là ;)

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*).html$ $1.php [L]

(Message édité le 06-09-2012 à 22h21 par FavXP)

FavXP | Jean
Membre

Photo de FavXP

Inscrit le : 18/07/2008

# Le 06/09/2012 à 17:14

Merci terry ;)

Comment perdre son temps avec des petites conneries comme ça !

cerise | Gaël
Modérateur

Photo de cerise

Inscrit le : 31/10/2008

# Le 06/09/2012 à 17:40

Quel intérêt de renommer toutes tes extensions ?

terry | Térence
Membre

Photo de terry

Inscrit le : 16/06/2012

# Le 06/09/2012 à 18:16

Par contre, si tu ne mets pas R=301, c'est par défaut du 302 (redirection temporaire) donc les robots vont continuer à crawler la page php si je ne trompe pas.

Sinon même question que cerise, pour quel motif ?

Crédit ImmobilierOuvrir dans une nouvelle fenetre | Courtage en CréditOuvrir dans une nouvelle fenetre

FavXP | Jean
Membre

Photo de FavXP

Inscrit le : 18/07/2008

# Le 06/09/2012 à 19:06

En faite, c'est parce-que le site existe déjà en version "html" donc des liens en html traînent, de plus mes liens internes sont en html. (la version en html va être supprimé)

Pour ce qui est du 301 ce n'est pas une redirection, mais une réécriture d'url, je pense que les robots ne peuvent que crawler les php, vu qu'en réalité les "html" n'existent pas ou plutôt n'existerons plus (enfin c'est ce que je crois) quoique normalement eux aussi doivent être redirigé sur les "html".

La 301 ne peut pas fonctionner vue que mes pages en html vont être supprimer pour être remplacé par celles en php.

Le header me dit cela que j'entre la page en php ou html:

HTTP/1.1 200 OK
Date: Thu, 06 Sep 2012 14:46:17 GMT
Server: Apache
Transfer-Encoding: chunked
Content-Type: text/html

Cependant, si je me trompe n'hésitez pas à me rappeler à l'ordre ;)

(Message édité le 06-09-2012 à 19h26 par FavXP)

FavXP | Jean
Membre

Photo de FavXP

Inscrit le : 18/07/2008

# Le 06/09/2012 à 19:20


Par-contre la ou je pèche un peu c'est pour les [ link rel="canonical"..... ] les mettent en php ou en html ?

terry | Térence
Membre

Photo de terry

Inscrit le : 16/06/2012

# Le 06/09/2012 à 19:53

Oui je n'avais pas bien saisi ton système donc aucun intérêt les 301, 302, etc. à moins que tu veuilles faire complétement disparaitre les pages php de l'index (il faudrait faire une redirection php de ta page php vers ta "page" html en 301).

D'après moi c'est sur les html qu'il faut que tu mettes les canonical car c'est par leur url en html que tu les appelles en interne non ?

Crédit ImmobilierOuvrir dans une nouvelle fenetre | Courtage en CréditOuvrir dans une nouvelle fenetre

cerise | Gaël
Modérateur

Photo de cerise

Inscrit le : 31/10/2008

# Le 06/09/2012 à 20:04

ok donc c'est plus clair.
pour le coup, pas de raison d'utiliser le rel=canonical puisque si je comprends bien tu n'a qu'une page pour un même contenu et non 2. Sinon, il me semble que l'usage est de mettre le rel=canonical sur la page non canonique justement, bien que dans la pratique, on voit de tout (Wordpress par exemple l'ajoute un peu n'importe comment, et notamment sur la page canonique)

FavXP | Jean
Membre

Photo de FavXP

Inscrit le : 18/07/2008

# Le 06/09/2012 à 21:59

@terry

Oui je n'avais pas bien saisi ton système donc aucun intérêt les 301, 302, etc. à moins que tu veuilles faire complétement disparaitre les pages php de l'index (il faudrait faire une redirection php de ta page php vers ta "page" html en 301).

Non je ne peux pas, les html n'existe pas dans mon cas ;) donc je ne pourrais pas rediriger mes php vers des html inexsistant.
Cependant j'ai trouvez un autre truc pour évitez d'avoir accès aux pages php (faut que je remette la main dessus)


D'après moi c'est sur les html qu'il faut que tu mettes les canonical car c'est par leur url en html que tu les appelles en interne non ?

C'est bien ce que je pense aussi ;)


@cerise
Effectivement les "canonicals" n'auront pas lieu d'être au final puisque comme tu le dis, il n'y aura qu'une seule version pour chaque page qui sortira en html.
Editer : En fait on peut avoir accès a une même page en php et en html malgré le rewrite que j'ai mis, donc un "canonical" s'impose (et il sera automatiquement via le rewrite sur les pages version php et html) le truc bien prise tête

Je vous remercie de votre aide ;)

(Message édité le 06-09-2012 à 22h28 par FavXP)

terry | Térence
Membre

Photo de terry

Inscrit le : 16/06/2012

# Le 07/09/2012 à 13:42

FavXP a dit :

Non je ne peux pas, les html n'existe pas dans mon cas ;) donc je ne pourrais pas rediriger mes php vers des html inexsistant.
Cependant j'ai trouvez un autre truc pour évitez d'avoir accès aux pages php (faut que je remette la main dessus)


Je me souviens d'avoir vu un truc du genre dans un framework et j'avais trouvé la méthode sympathique :
lorsqu'on activait le rewrite url, chaque accès à une page d'article faisait appel à une fonction php qui vérifiait si l'adresse par laquelle la page était appelée était bien celle rewritée sinon elle faisait un simple header() en 301 vers l'adresse rewrité, et comme ça fini le duplicate content !


Editer : En fait on peut avoir accès a une même page en php et en html malgré le rewrite que j'ai mis, donc un "canonical" s'impose (et il sera automatiquement via le rewrite sur les pages version php et html) le truc bien prise tête


En fait cerise a raison, il faut que tu l'ajoutes sur la page lorsqu'on y accède via son lien php (page non canonique donc).

http://support.google.com/webmasters/bin/answer.py...Ouvrir dans une nouvelle fenetre

Crédit ImmobilierOuvrir dans une nouvelle fenetre | Courtage en CréditOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 26/04/2024 0:49:18 | Généré en 7.41ms | Contacts | Mentions légales |