[Résolu] - php - URL Rewriting chez free (free.fr)

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par michel.leonard, 23 Juillet 2010.

  1. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    366
    J'aime reçus:
    0
    Malgré l'absence du mod rewrite chez Free nous avons quand même la possibilité d'embellir nos adresse web grâce à un autre module apache appelé Multiview. Ce module permet d'accéder à un fichier sans mentionner son extension dans l'url. Grace à ceci et à une variable superglobale de PHP nous sommes en mesure de faire une réécriture d'adresse URL.

    Dans une adresse du type http://webrank.free.fr/info/faire-url-rewriting-chez-free.html
    Code:
    <?PHP
    $url = $_SERVER['PATH_INFO'];
    ?> 
    La variable url est une chaîne qui contiens "info/faire-url-rewriting-chez-free.html".

    Le traitement peut se faire de multiples manières, par exemple avec explode() ou preg_match().
    Code:
    <?PHP
    $get = explode("/", $url); 
    ?>
    
     
  2. Sullyvan
    Sullyvan WRInaute discret
    Inscrit:
    20 Mai 2008
    Messages:
    85
    J'aime reçus:
    0
    Merci c'est exactement ce que je cherchais pour un site perso !

    Il m'avait pourtant semblé avoir lu sur une newsgroup que l'url rewriting fonctionnait sur Free.fr mais c'était en 2002-2004 ça

    Reco !
     
  3. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    366
    J'aime reçus:
    0
    De rien, pour aller un peu plus loin avec les expressions régulières on peut faire comme suit , c'est un peu plus propre que explode, puisque les caractères comme "#@}]°..." ne sont pas tolérés...
    Code:
    <?php
    preg_match("/^\/([a-z0-9\-_]+)(?:(?:\/([a-z0-9\-_]+))(?:\/([a-z0-9\-_\.]+)+)?)?\/?$/i",$_SERVER['REQUEST_URI'],$url);
    ?>
    cette regexp match les url de cette façon :

    http://monsite.free.fr/documentaires/39-45/bataille-atlantique.php

    DANS LE FICHIER documentaires.php

    $url[1]=documentaires
    $url[2]=39-45
    $url[3]=bataille-atlantique.php

    cette regexp match uniquement les caracteres suivants A-Z (alphabet insensible a la casse) - (tirets) _ (tirets bas) . (points) 0-9 (chiffres) dans les adresses de profondeur 1 , 2 ou 3... Les points ne sont pas autorisés dans les noms des dossiers. En cas d'adresse invalide , $url[1] , $url[2] et $url[3] n'existent pas.

    faites un :
    Code:
    <?
    print_r($url);
    ?>
    pour tester...
     
  4. stef13100
    stef13100 Nouveau WRInaute
    Inscrit:
    20 Décembre 2010
    Messages:
    3
    J'aime reçus:
    0
    excuser moi une question a la fin du code la redirection est elle:

    header("HTTP/1.0 200 OK"); // Faut-il un 200 ou un 301 ???
    header('Location: '.$newurl);
     
  5. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    366
    J'aime reçus:
    0
    Code:
    header("HTTP/1.1 301 Moved Permanently");
    header ('location: http:/ton-url.com);
    header("Connection: close");
     
  6. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    366
    J'aime reçus:
    0
    mais il n'y a pas de redirection a la fin du code, c'est normalement a toi d'inclure les bons fichiers en fonction du parametre $url... tu comprends ? les dossiers et les pages sont virtuels...
     
  7. stef13100
    stef13100 Nouveau WRInaute
    Inscrit:
    20 Décembre 2010
    Messages:
    3
    J'aime reçus:
    0
    oui merci j'ai compris mais j'ai mis la solution car les tutos font penser que l'on peux faire

    header("HTTP/1.1 301 Moved Permanently");
    header ('location: http:/ton-url.com);

    mais le serveur free renvoi un 302 qui n'est pas référencer
     
  8. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    366
    J'aime reçus:
    0
    effectivement, on pourrais faire une 301, mais ca provoquerai une boucle de redirection... grace a l'expression rationelle, tu es déja dans la page que tu veux rediriger; bien sur chez free, le dossier virtuel est obligatoire pour cet url rw...
     
  9. olikhvar
    olikhvar Nouveau WRInaute
    Inscrit:
    1 Avril 2015
    Messages:
    1
    J'aime reçus:
    0
    J'ai la meme problem.

    1.je veux mon site doit afficher monsite.free.fr/dossier1/index à la place de monsite.free.fr/dossier1/index.php
    2. pareil monsite.free.fr/dossier11/index2?var1=x&var2 a la palace de monsite.free.fr/dossier11/index2.php?var1=x&var2

    comment a faire pouvez m'expliquer plus clairement svp?

    Merci d'vance.
     
Chargement...
Similar Threads - [Résolu] php Rewriting Forum Date
[résolu] Erreur 500 avec EasyPHP 5.3.0 et les URL rewriting URL Rewriting et .htaccess 10 Février 2010
[Résolu] Url Rewriting et phpThumb URL Rewriting et .htaccess 17 Décembre 2009
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[RESOLU] récupérer les images d'un dossier en php Développement d'un site Web ou d'une appli mobile 29 Novembre 2014
[Résolu] Reconnaître un Doctype en PHP Développement d'un site Web ou d'une appli mobile 25 Juillet 2012
Convertir texte pour URL en PHP [Résolu] Développement d'un site Web ou d'une appli mobile 8 Mai 2012
[PHP] Détecter l'OS, le navigateur et la langue [Résolu] Développement d'un site Web ou d'une appli mobile 4 Mars 2012
[résolu] phpmyadmin et OVH mutu : limitation ? Administration d'un site Web 7 Avril 2011
[Résolu] Formatter une chaine (php) Développement d'un site Web ou d'une appli mobile 14 Février 2011
[Résolu] Gestionnaire de maintenance en PHP pour son site Administration d'un site Web 26 Septembre 2010
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice