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 :

Charger toto.html à la place de toto.php


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut Charger toto.html à la place de toto.php
    Bonjour.

    Sur mon site, j'ai opté pour la réécriture suivante dans .htaccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule   ^([a-z]+).html$   /index.php?url=$1  [L]
    Mais je me suis rendu compte que sur certains moteurs de recherche, les pages avec l'extension PHP étaient données. Par exemple, le lien suivant figure dans la liste des suggestions d'un moteur de recherche :

    Le problème est que la page toto.php est faite pour être incluse DANS la page index.php donc quand on clique sur le lien du moteur de recherche, on arrive à une page qui n'est pas mise en forme ...

    Je voulais donc savoir s'il existait une écriture demandant à .htaccess de charger automatiquement toto.html à la place de toto.php (et ce, pour tous les fichiers PHP).

    Je précise que dans index.php, j'inclus les pages PHP par la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include 'toto.php';
    J'ajoute que j'ai tenté la commande suivante, mais ans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RedirectMatch seeother /^([a-z]+).php$ http://www.monsite.fr/$1.html
    Merci d'avance.

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    Non, c'est un peu plus compliqué que ça. Il faut distinguer l'accès à des pages PHP venant directement de l'extérieur des accès issus d'une réécriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteRule   ^([a-z]+).html$   /index.php?url=$1&redirect_internal  [L]
     
    RewriteCond %{QUERY_STRING} !redirect_internal
    RewriteRule (*.)\.php$ $1.html [R=301,L]
    Sur le même principe, si tu as d'autres réécriture dans ton .htaccess vers des pages PHP, il faut ajouter le paramètre d'URL redirect_internal dans tes réécritures.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Merci pour ces précisions.
    J'ai tenté cette technique, mais là ... Le site ne fonctionne plus.
    Quand je tape :

    Cela me met une erreur de type 500.

  4. #4
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Ca arrive mais faut nous aider à t'aider : donne-nous tout le contenu de ton .htaccess.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour.

    J'ai tenté de mettre uniquement le script donné, et cela ne fonctionne quand-même pas.

    Cependant, le contenu entier est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    RedirectPermanent  /docdivers/ http://www.monsite.fr/
    RedirectPermanent  /docpedago/ http://www.monsite.fr/
    RedirectPermanent  /docsco/ http://www.monsite.fr/
    RedirectPermanent  /docjuridisme/ http://www.monsite.fr/
    RedirectPermanent  /enseignement/ http://www.monsite.fr/
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule   ^([a-z]+).html$   /index.php?url=$1&redirect_internal  [L]
    RewriteRule   ^autourde-([a-z]+).html$   /index.php?url=autourde&page=$1&redirect_internal   [L]
    RewriteRule   cours-particuliers-mathematiques-bordeaux.html   /index.php?url=cp&redirect_internal   [L]
    RewriteRule   ^error([0-9]+).html$   /index.php?url=$1&redirect_internal   [L]
     
    ErrorDocument 404 http://www.monsite.fr/error404.html

  6. #6
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    J'avoue ne pas comprendre quel est le problème. Tu as accès aux traces d'erreur d'Apache (fichier error_log) ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Au temps pour moi ... J'ai donné le contenu qui fonctionne !

    Mais si j'ajoute à cela les lignes que tu m'as fourni, là, ça fait une erreur 500.

    En gros,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    RedirectPermanent  /docdivers/ http://www.monsite.fr/
    RedirectPermanent  /docpedago/ http://www.monsite.fr/
    RedirectPermanent  /docsco/ http://www.monsite.fr/
    RedirectPermanent  /docjuridisme/ http://www.monsite.fr/
    RedirectPermanent  /enseignement/ http://www.monsite.fr/
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule   ^([a-z]+).html$   /index.php?url=$1&redirect_internal  [L]
    RewriteRule   ^autourde-([a-z]+).html$   /index.php?url=autourde&page=$1&redirect_internal   [L]
    RewriteRule   cours-particuliers-mathematiques-bordeaux.html   /index.php?url=cp&redirect_internal   [L]
    RewriteRule   ^error([0-9]+).html$   /index.php?url=$1&redirect_internal   [L]
     
    RewriteCond %{QUERY_STRING} !redirect_internal
    RewriteRule (*.)\.php$ $1.html [R=301,L]
     
    ErrorDocument 404 http://www.monsite.fr/error404.html
    ne fonctionne pas.
    Et je n'ai pas accès au fichier APACHE non ... Je suis chez OVH, et je ne le trouve pas sur le serveur.

  8. #8
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Me suis trompé c'est .* et pas *. dans la RewriteRule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule (.*)\.php$ $1.html [R=301,L]

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Il y a du mieux en effet (comme je ne connais pas bien la syntaxe des expressions régulières, je n'avais rien vu).

    Par contre, maintenant, quand je tape "toto.php", ça me redirige vers la page d'erreurs ... J'ai donc enlevé les options et tout fonctionne.

    Merci !

    PS : j'avais entre temps pris un autre chemin ... J'avais ouvert une session PHP dès l'entrée dans mon site et dans chaque page PHP appelée via index.php, j'avais mis une condition sur l'existence d'une variable de session, ce qui est, je l'accord, contraignant car j'ai dû mettre cette condition sur toutes les pages ... Mais maintenant, je suis sauvé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Éditeur texte/html pour ajout de news PHP
    Par UrbanCORE dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 27/08/2012, 21h13
  2. Réponses: 6
    Dernier message: 20/09/2007, 13h30
  3. Réponses: 2
    Dernier message: 07/08/2006, 22h36
  4. Réponses: 5
    Dernier message: 21/02/2006, 19h21
  5. [Système] récupérer l'HTML généré par ma page PHP
    Par saint-pere dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2005, 10h19

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