IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Redirection page .php vers .html


Sujet :

Apache

  1. #1
    Invité
    Invité(e)
    Par défaut Redirection page .php vers .html
    Bonjour,

    j'ai un souci avec une redirection très simple dans mon fichier .htaccess, voici ma redirection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    # les pages .php sont rediriger en .html
    RewriteRule ^(.*)\.html $1\.php [L]
    Quand je vais sur ma page index.html , celle ci s'affiche bien.
    Par contre quand je vais sur ma page index.php elle s'affiche aussi (elle n'est pas redirigée vers le .html)
    J'aimerais faire une redirection permanente de toutes les page .php vers .html car imaginons que google me repère une page .php et la même page en .html ça va pas le faire.

    J'ai essayé des tas de redirection mais sans aucun résultat. Merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Cette redirection est loin d'être simple. Les RewriteRule ne se lisent et ne sont exécutées que dans un seul sens : de la gauche vers la droite. Il ne faut pas attendre d'Apache qu'il redirige explicitement les navigateurs parce que tu lui dis simplement "en fait, les .html sont des .php". Pour faire la redirection que tu veux, il faut explicitement le dire à Apache : "redirige le navigateur vers le .html s'il demande le .php directement".

    Mais toute la difficulté de l'exercice est dans le "directement" car, contrairement à ce qu'on pourrait croire, Apache va jouer toutes les règles de réécriture jusqu'à ce qu'il tombe sur une URL qui est réécrite. Donc sans rien faire de particulier, on va tomber sur une boucle infinie : .php => .html => .php => .html => ...

    Pour s'en sortir, il faut construire un cas d'échappement qui casse la boucle. Ce cas est possible en utilisant une variable d'URL bidon qui sert à identifier les cas où on demande un .php parce qu'on redirige un .html des cas où on demande directement un .php. Donc au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # Reecriture interne et normale des .html vers .php
    RewriteRule ^(.*)\.html $1\.php?internal_redirect=1 [L]
     
    # Redirection explicite des .php demandes directement, donc sans le internal_redirect=1
    RewriteCond %{QUERY_STRING} !internal_redirect=1
    RewriteRule ^(.*)\.php $1\.html [R=301,L]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ok merci mac c'est exactement ça.

    Je te donne t'as 4ème étoiles de modérateur

  4. #4
    Membre averti
    Femme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 17
    Par défaut
    Bonjour, merci pour ces explications. Du coup je me demande si il faut garder les pages php, ou les supprimer ?
    Merci

Discussions similaires

  1. [PHP 5.4] Comment générer toutes les pages d'un site de php vers html
    Par MelkInarian dans le forum Langage
    Réponses: 3
    Dernier message: 30/05/2013, 13h51
  2. Rediriger page PHP vers un fichier html en local
    Par rvfranck dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2010, 20h55
  3. [SQL] enregistrer le résultat dune page php en html sur le server
    Par lagag dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 06/10/2006, 14h04
  4. [Excel] Exporter un tableau d'une page php vers un fichier Excel
    Par griese dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 04/07/2006, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo