Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 20 sur 20
  1. #1
    Invité de passage
    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
    Points : 1
    Points
    1

    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 :
    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/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 417
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 417
    Points : 10 972
    Points
    10 972

    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 :
    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.

    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
    Invité de passage
    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
    Points : 1
    Points
    1

    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/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 417
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 417
    Points : 10 972
    Points
    10 972

    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 :
    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 ?

    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
    Invité de passage
    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
    Points : 1
    Points
    1

    Par défaut

    Pour ma version apache je suis a la 2.2.21 (sous wamp)

    Code :
    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/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 417
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 417
    Points : 10 972
    Points
    10 972

    Par défaut

    Du coup, pour les pages d'erreur, c'est plutôt simple :
    Code :
    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.

    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
    Invité de passage
    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
    Points : 1
    Points
    1

    Par défaut

    Citation Envoyé par _Mac_ Voir le message
    Du coup, pour les pages d'erreur, c'est plutôt simple :
    Code :
    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.
    En faites je souhaite pouvoir envoyer une personne sur une page différente en fonction d'un paramétre qui est compris entre 8 et 12 caractère sinon si le parametre rentré est moins de 8 on l'envoie vers une erreur 404 , si il fait plus de 12 on l'envoie aussi vers une erreur 404 , j'ai écrit dans mon htaccess comme cela :
    Code :
    RewriteRule ^([^inscription][A-Za-z0-9]{8,12})$ /mapage.php?parametre=$1
    sauf qu'en rentrant un paramètre (ixadqPs2) (localhost/ixadqPs2) je tombe sur mon fichier erreur 404 mais avec d'autres de 8 caractère je tombe bien comme si j'avais rentré mapage.php?parametre=(machaine)
    (je sais pas si c'est plus clair)

  8. #8
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 417
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 417
    Points : 10 972
    Points
    10 972

    Par défaut

    Tu peux donner une URL qui passe alors qu'elle ne devrait pas ?

    Tu as vidé le cache de ton navigateur avant de faire tes tests ?

    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
    Invité de passage
    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
    Points : 1
    Points
    1

    Par défaut

    J'ai fait plein de test et justement j'ai que des urls qui ne passe pas alors qu'elle le devrait (http://localhost/iiiiiiii (ne marche pas) et deux trois truc comme ça)
    http://localhost/aaaaaaaa ne marche pas avec :
    Code :
    RewriteRule ^([^inscription][A-Za-z0-9]{8,12})$ /mapage.php?parametre=$1
    mais que avec :
    Code :
    RewriteRule ^([^inscription][A-Za-z0-9]{7,12})$ /mapage.php?parametre=$1
    alors que sa fait bien 8 caractère je comprend pas

    Et oui j'ai vidé mon cache avant de faire les tests.

  10. #10
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 417
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 417
    Points : 10 972
    Points
    10 972

    Par défaut

    En effet, c'est très étrange. Tu peux donner des URL qui passent ? Je me demande si ce n'est pas le multiplicateur {7,12} qui pose problème mais je ne vois pas pourquoi.

    Et sans le / devant mapage.php ?
    Code :
    RewriteRule ^([^inscription][A-Za-z0-9]{7,12})$ mapage.php?parametre=$1

    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

  11. #11
    Invité de passage
    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
    Points : 1
    Points
    1

    Par défaut

    Salut ,
    j'ai essayer sans le slash mais sa ne marche toujours pas.
    Des urls qui passent ;
    -http://localhost/4Ag12R3D (8 caractères)
    -http://localhost/bbbbbbbb (8 caractères)
    -http://localhost/aaaaaaaaa (9 caractères)
    -http://localhost/aaaaaaaaaa (10 caractères)
    -http://localhost/KXt52968 (8 caractères)
    -http://localhost/KXt52968aaaa (12 caractères)
    -http://localhost/4969709h (8 caractères)
    -http://localhost/49697098 (8 caractères)

  12. #12
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 417
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 417
    Points : 10 972
    Points
    10 972

    Par défaut

    Ben ça marche comme il faut sur mon serveur perso. Du coup, je soupçonne un conflit avec d'autres règles de ton .htaccess. Est-ce que tu peux donner le .htaccess complet, s'il te plaît ?

    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

  13. #13
    Invité de passage
    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
    Points : 1
    Points
    1

    Par défaut

    Ouep;
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    RewriteEngine on
    php_flag default_charset utf-8
    AddDefaultCharset UTF-8
    ErrorDocument 400 /erreur_400.php
    ErrorDocument 401 /erreur_401.php
    ErrorDocument 403 /erreur_403.php
    ErrorDocument 404 /erreur_404.php
    ErrorDocument 500 /erreur_500.php
    ErrorDocument 503 /erreur_503.php
    DirectoryIndex /accueil.php erreur_404.php
    RewriteRule ^([^inscription][A-Za-z0-9]{7,12})$ /traitement.php?lien=$1
    RewriteRule ^accueil/?$ /accueil.php
    RewriteRule ^inscription/?$ /inscription.php
    RewriteRule ^connexion/?$ /connexion.php
    RewriteRule ^livreor$ /livreor.php
    RewriteRule ^livreor/([0-9]*)$ /livreor.php?parametre=$1
    RewriteRule ^contact/?$ /contact.php
    RewriteRule ^infos/?$ /infos.php 
    RewriteRule ^conditions_utilisation/?$ /cu.php 
    RewriteRule ^oublie/([1-2])$ /id.php?parametre=$1
    RewriteRule ^oublie$ /id.php [L]

  14. #14
    Invité de passage
    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
    Points : 1
    Points
    1

    Par défaut

    Désolé du double-post mais je viens de remarqué que quand j'enleve "[^inscription]" de mon htaccess ligne 11 tout mes liens de menu sont prie comme des liens du genre http://localhost/1K73nd36 mais quand je le remet tout mes lien du menu remarche mais les liens du genre http://localhost/1K73nd36 ne marche plus... bizard
    Code :
    RewriteRule ^([^inscription][A-Za-z0-9]{7,12})$ /traitement.php?lien=$1

  15. #15
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 417
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 417
    Points : 10 972
    Points
    10 972

    Par défaut

    Bizarre. Tu peux donner un exemple de lien dans ton menu ?

    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

  16. #16
    Invité de passage
    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
    Points : 1
    Points
    1

    Par défaut

    Salut ,
    en faites j'ai marquer dans mon htacces "[^inscription]" pour empecher que ma page http://localhost/inscription soit pris comme un lien "http://localhost/KXt52968" sinon j'ai aussi comme lien dans mon menu : http://localhost/connexion
    mais quand je met "[^inscription]" tout mes liens de menu marche mais pas mes lien comme ceux ci "http://localhost/KXt52968"
    tu ne saurais pas comment que les fichiers php ne soit plus accesible directement par ex interdire l'accès a http://localhost/connexion.php mais autoriser seulement http://localhost/connexion (par exemple)

  17. #17
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 417
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 417
    Points : 10 972
    Points
    10 972

    Par défaut

    Citation Envoyé par didou91 Voir le message
    Salut ,
    en faites j'ai marquer dans mon htacces "[^inscription]" pour empecher que ma page http://localhost/inscription soit pris comme un lien "http://localhost/KXt52968"
    Cette notation [^inscription] n'est pas du tout la bonne notation pour ce que tu veux faire. C'est peut-être ça le problème. Essaie plutôt ceci :
    Code :
    1
    2
    RewriteCond %{REQUEST_URI} ^/inscription
    RewriteRule ^([A-Za-z0-9]{9,13})$ /mapage.php?parametre=$1

    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

  18. #18
    Invité de passage
    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
    Points : 1
    Points
    1

    Par défaut

    Salut,
    sa ne marche toujours pas...
    En faites il fraudait dire que quand le parametre est egale a inscription ou connexion ou accueil on ne vas pas sur mapage.php...

  19. #19
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 417
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 417
    Points : 10 972
    Points
    10 972

    Par défaut

    "Ca ne marche pas" reste toujours aussi vague : quelle URL dans la barre du navigateur ? quel message d'erreur exact indiqué par le navigateur ? Bref, des précisions.

    Citation Envoyé par didou91 Voir le message
    En faites il fraudait dire que quand le parametre est egale a inscription ou connexion ou accueil on ne vas pas sur mapage.php...
    C'est ce qu'est censé faire le RewriteCond, mais peut-être faut-il l'adapter un peu : si l'URL inscription est dans un "sous-répertoire" (http://site.com/toto/inscription) ma règle ne va pas car elle vérifie que l'URL commence strictement par "/inscription" et pas "/toto/inscription".


    Tu as essayé aussi en supprimant le / devant mapage.php dans la RewriteRule ?
    Code :
    1
    2
    RewriteCond %{REQUEST_URI} ^/inscription
    RewriteRule ^([A-Za-z0-9]{9,13})$ mapage.php?parametre=$1

    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

  20. #20
    Invité de passage
    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
    Points : 1
    Points
    1

    Par défaut

    Salut,
    en faite sa marche bien , il fallait juste attendre une dixaine de minutes (je ne sais pas pourquoi mais a chaque modification sur mon htaccess les modification réel ne se font pas)

    merci encore !

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •