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 :

[URL Rewriting] rediriger .php vers .html


Sujet :

Apache

  1. #1
    Gunner4902
    Invité(e)
    Par défaut [URL Rewriting] rediriger .php vers .html
    Bonjour à tous et bon noel

    Mon site est actuellement sous 60GP chez OVH. J'utilise les includes et mes pages sont donc écrites avec l'extension .php.
    Etant donné le peu de traffic mensuel, j'envisage de passer du 60GP au 20GP, qui lui est réservé au HTML (avec donc suppression des includes).

    Je ne souhaite pas perdre le référencement de mes pages (PR4), et si je peux facilement changer tous les liens de mon site, je ne veux pas risquer un duplicate content en écrivant une page index.html et qu'un site Y garde en lien, le lien érronné index.php, car je serai sandboxé

    J'ai donc voulu mettre ceci dans le htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule ^([^.]+).html$ $1.php [L]
    afin que le fichier.php soit affiché en fichier.html dans le navigateur, mais celui-ci me propose un boite de dialogue avec "télécharger" au lieu d'afficher la page normalement, que dois-je rajouter au htaccess (si c'est possible) pour que fichier.php s'affiche tout bêtement en fichier.html (mais il n'y aurait pas de php dans fichier.php, je fais juste celà pour garder le référencement)
    Dernière modification par Gunner4902 ; 26/12/2007 à 14h05.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par Gunner4902
    Peut-on donc établir une règle d'écriture via un RewriteEngine On (si oui, comment)
    Oui si l'offre vous le permet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.+)\.php$ $1.html [R=302]
    (non testé et il y a peut être plus "propre")

    Citation Envoyé par Gunner4902
    Peut-on aussi mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddType application/x-httpd-php .html
    dans le htaccess sur un hébegement mutualisé OVH ?
    C'est possible (si permis et si PHP est utilisé comme module Apache) mais vos documents html seraient systématiquement traités par l'interpréteur PHP.

  3. #3
    Gunner4902
    Invité(e)
    Par défaut
    Merci Julp

    Je viens de tester, et le serveur me retourne une erreur 403…

    je vais donc devoir je pense faire un redirectpermanent de toutes mes pages 1 par 1…

    n'existe-t-il pas un syntaxe générique pour dire

    RedirectPermanent *php *html

    si non, je vais faire les 60 pages à la main

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par Gunner4902
    Je viens de tester, et le serveur me retourne une erreur 403…
    403 (droits, absence d'index de répertoire, ...) ? Ce n'est donc pas une erreur 500 donc vous pouvez utiliser ces directives.

  5. #5
    Gunner4902
    Invité(e)
    Par défaut
    Ok, merci Julp

    Dans ce cas, pourquoi le serveur me retourne-t-il l'erreur 403, ou 404 suivant si j'écris index.html ou index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    404 - Not Found
    The requested URL /home/site/www/index.html was not found on this server.
    Apache/1.3.39 Server at 20gp.ovh.net Port 80
    J'ai mis le htaccess à la racine du site, là où se trouve également index.php

    et dans le htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule ^(.+)\.php$ $1.html [R=302]
    L'url appelé est h**p://20gp.ovh.net/site/index.html
    et celle retournée est h**p://20gp.ovh.net/home/site/www/index.html

    Merci de tes éclaircissements

  6. #6
    Gunner4902
    Invité(e)
    Par défaut
    J'ai tenté de modifier le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Options FollowSymLinks
    RewriteEngine on
    #RewriteRule ^index\.php$ index.html [R=301, L]
    mais quand j'appele la page h*tp://20gp.ovh.net/~capinfor/index.php, j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Not Found
    The requested URL /capinfor/index.php was not found on this server.
     
    Apache/1.3.39 Server at 20gp.ovh.net Port 80
    à noter que le tilde (~) n'est pas devant capinfor dans le not found…
    Dernière modification par Gunner4902 ; 26/12/2007 à 14h25.

  7. #7
    Gunner4902
    Invité(e)
    Par défaut
    Ok, je viens de voir que "Mod_rewrite est disponible chez OVH sur l'ensemble des hébergements mutualisés (sauf 20gp)" (or je suis sous 20gp)…

    Comment peut-on faire autrement pour rediriger un .php > .html sans utiliser de mod_rewrite ?

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Est-ce qu'à tout hasard :
    Pourrait convenir/fonctionner ?

    Il y a également RedirectMatch (requérant les mêmes droits - FileInfo) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RedirectMatch (.*)\.php $1.html

  9. #9
    Gunner4902
    Invité(e)
    Par défaut
    Il y a un mieux

    En effet, quand je tapes index.php dans la barre d'url, le navigateur retourne bien index.html dans la barre d'url

    Par contre il m'affiche une erreur 403 en même temps…
    Forbidden
    You don't have permission to access /~capinfor/index.html on this server.
    Apache/1.3.39 Server at 20gp.ovh.net Port 80
    Que faire ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/03/2011, 17h43
  2. [URL rewriting] Rediriger / sur /accueil.php
    Par amel_sh dans le forum Apache
    Réponses: 2
    Dernier message: 22/12/2010, 10h36
  3. [URL rewriting] Rediriger les pages sur /index.php
    Par doudoustephane dans le forum Apache
    Réponses: 4
    Dernier message: 23/11/2010, 22h10
  4. [URL rewriting] domain.com vers domain.com/pages/index.php
    Par MatthieuFourcade dans le forum Apache
    Réponses: 3
    Dernier message: 01/04/2010, 14h28
  5. Réponses: 2
    Dernier message: 05/11/2008, 10h38

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