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


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Par défaut url rewriting
    Je suis en train de faire de l'url rewriting et j'ai quelques questions ,toutes mes pages seront en http://nomdedomaine/mapage ou http://nomdedomaine/mapage/
    tout d'abord est-ce aussi bien pour le référencement que http://nomdedomaine/mapage.html ?

    Pour rediriger mon ancienne url (http://nomdedomaine/mapage.php) vers la nouvelle , il faut faire un redirection 301 ou la faire en php ? (pour la redirection 301 on fait comment ?)

    Dois-je modifier tout les liens écrit dans mes scripts vers mes nouvelles url ?

    Comment reconnaître les différentes erreurs (401,403,404,500) si elle sont redirigés toutes vers un même fichier ?

    Et je ne comprend pas pourquoi avec cette instruction (dans le fichier .htacces) (en mettant un paramètre GET inexistant):
    1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^mapage/([1-9]*)$ /mapage.php?page=$1
    sa me renvoie vers une page :
    Not Found

    The requested URL /mapage/mapage.php was not found on this server.
    Alors que dans mon script php il y a tout pour faire face a ce genre de situation.

    Merci

  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
    Citation Envoyé par didou91 Voir le message
    Je suis en train de faire de l'url rewriting et j'ai quelques questions ,toutes mes pages seront en http://nomdedomaine/mapage ou http://nomdedomaine/mapage/
    tout d'abord est-ce aussi bien pour le référencement que http://nomdedomaine/mapage.html ?
    Aucune idée. Il faut poser la question sur le forum référencement.

    Citation Envoyé par didou91 Voir le message
    Pour rediriger mon ancienne url (http://nomdedomaine/mapage.php) vers la nouvelle , il faut faire un redirection 301 ou la faire en php ? (pour la redirection 301 on fait comment ?)
    Alors, on va resituer les choses. PHP est un langage de programmation, souvent utiliser pour faire des sites Web mais pas que, et un redirection (301 = redirection permanente ; 302 = temporaire) est un message HTTP particulier qui dit que la ressource (l'URL) demandée se trouve ailleurs (301 = définitivement ; 302 = temporairement).

    Etant donné que tu peux programmer des sites Web en PHP, c'est évident que tu peux faire de redirection 301 en PHP mais en fait ça n'a rien à voir : rien ne t'oblige à utiliser PHP pour faire des redirections (301 ou 302). Tout dépend de la technologie utilisée sur le serveur Web. Si le serveur Web est Apache, tu peux faire des redirections 301 directement par configuration Apache. En fonction de ce qu'il s'agit de rediriger, c'est souvent ce qu'on cherche à faire pour des raisons de simplicité, mais quand c'est trop difficile par configuration Apache, on passe par une méthode plus évoluée : un script PHP mais pourquoi pas un CGI, une page en ASP (c'est possible), en HTML + JavaScript, etc.

    Donc tout dépend de ce que tu veux faire comme redirection : quand ? vers quoi ? et avec quoi ?

    Citation Envoyé par didou91 Voir le message
    Dois-je modifier tout les liens écrit dans mes scripts vers mes nouvelles url ?
    C'est très fortement recommandé car un navigateur qui accède au site pour la première fera tout d'abord une requête sur l'ancienne URL pour être redirigé ensuite. Si on peut éviter cette redirection, c'est préférable.

    Citation Envoyé par didou91 Voir le message
    Comment reconnaître les différentes erreurs (401,403,404,500) si elle sont redirigés toutes vers un même fichier ?
    Tout dépend de ce fichier. Par configuration Apache (si tant est que c'est une configuration Apache qui redirige aujourd'hui ces erreurs vers ce même fichier), c'est possible de diriger chaque type d'erreur sur un fichier différent.

    Citation Envoyé par didou91 Voir le message
    Et je ne comprend pas pourquoi avec cette instruction (dans le fichier .htacces) (en mettant un paramètre GET inexistant):
    1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^mapage/([1-9]*)$ /mapage.php?page=$1
    sa me renvoie vers une page :

    Alors que dans mon script php il y a tout pour faire face a ce genre de situation.
    Deux choses a priori :
    1. L'URL gérée par cette règle est de la forme /mapage/des_chiffres. Vu le message d'erreur, j'ai l'impression que ce n'est pas ce que genre d'URL que tu demandes, mais je peux me tromper.
    2. La réécriture vers /mapage.php?... ne correspond pas au script mapage/mapage.php mais un script appelé "mapage.php" situé à la racine du site. Il y a encore une subtilité d'Apache qui m'échappe mais des fois, une réécriture ne marche pas à cause du / devant le second membre d'une RewriteRule : peut-être qu'en réécrivant vers mapage.php?... sans / devant corrigerait les choses.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Par défaut
    la redirection 301 c'est pour rediriger mes anciens liens du genre page.php?page=2 vers page/2 donc comment faire une redirection 301 dans le fichier htaccess ?

    Donc pour chaque erreur différente je devrais rediriger vers un fichier différent ? Je ne peut pas savoir en php l'erreur pour afficher un message différent ?

    Pour la dernière question je viens de trouver (juste une histoire de redirection avec header)

  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
    Par défaut
    Citation Envoyé par didou91 Voir le message
    la redirection 301 c'est pour rediriger mes anciens liens du genre page.php?page=2 vers page/2 donc comment faire une redirection 301 dans le fichier htaccess ?
    En te renseignant un petit peu, tu tomberas sur le fait qu'il faut que tu utilises mod_rewrite avec une RewriteCond pour récupérer la valeur du paramètre "page" et une RewriteRule qui fait la redirection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} page=([0-9]+)
    RewriteRule page\.php page/%1 [R=301]

    Citation Envoyé par didou91 Voir le message
    Donc pour chaque erreur différente je devrais rediriger vers un fichier différent ? Je ne peut pas savoir en php l'erreur pour afficher un message différent ?
    Ca doit être possible mais tout dépend de la manière dont ta page PHP est appelée en cas d'erreur. Est-ce de la configuration Apache et si oui quelle est-elle ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Par défaut
    Pour ma version apache je suis a la 2.2.21 (sous wamp)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ErrorDocument 404 /erreur_404.php
    RewriteRule ^([^inscription][a-zA-Z0-9]{7,12})$ /mapage.php?parametre=$1
    et la j'ai un petit problème avec ixadqPs2 pourtant la chaîne fait bien entre 7 et 12 caractères ( sa me renvoie sur ma page d'erreur) je ne comprend pas dutout

  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
    Par défaut
    Du coup, pour les pages d'erreur, c'est plutôt simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ErrorDocument 404 /erreur.php?code=404
    ErrorDocument 500 /erreur.php?code=500
    ...
    et dans le code de erreur.php, tu récupères tout simplement 404, 500, etc. dans le paramètre d'URL code ($_GET["code"]).


    Pour l'erreur 404 avec ixadqPs2, voir mon message du 14/12/2012, 21h53, tout en bas.

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

Discussions similaires

  1. [Débutant]infos ds session sans cookie ? url rewriting ?
    Par Satanas_et_diabolo dans le forum ASP
    Réponses: 8
    Dernier message: 10/10/2006, 17h13
  2. url rewriting
    Par olive.m dans le forum Apache
    Réponses: 3
    Dernier message: 17/06/2005, 02h01
  3. .htaccess - url rewriting, besoin de conseils
    Par giminik dans le forum Apache
    Réponses: 2
    Dernier message: 25/04/2005, 20h18
  4. Activer l'url rewriting
    Par Otaugames dans le forum Apache
    Réponses: 2
    Dernier message: 09/03/2005, 14h58
  5. Url Rewriting / htaccess
    Par bisi dans le forum Apache
    Réponses: 4
    Dernier message: 25/07/2004, 22h12

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