[URL Rewriting] utiliser une fonction PHP...mais où ?

Discussion dans 'Débuter en référencement' créé par Sami, 11 Novembre 2005.

  1. Sami
    Sami Nouveau WRInaute
    Inscrit:
    21 Septembre 2002
    Messages:
    49
    J'aime reçus:
    0
    Bonjour,
    J'ai défnies des règles dans mon fichire .htaccess mais elles n'ont pas marché, alors j'ai trouvé un script php qui fait la même chose :
    Code:
    function lienurlrewriting($url) {
    	if (eregi("(.*).php(.*)",$url,$regs)) {
    		$monurl = $regs[1];
    		$geturl = $regs[2];
    		while (eregi("(.*)(\?|&)([^=]+)=([^=]*)(.*)",$geturl,$regs)) {
    			$geturl = $regs[1]."-".$regs[3]."-".$regs[4].$regs[5];
    		}
    		$url = $monurl.$geturl;
    	} elseif(eregi("(.*).php",$url,$regs)) {
    		$url = $regs[1];
    	}
    	return $url.".html";
    }
    
    Lien : http://www.webmaster-experience.net/art ... cle-2.html

    Cependant je ne sais pas comment l'intéger ?? et comment il sera appelé ? bref je n'ai pas compris comment l'utiliser.
    Je voudrais l'appliquer à la page suivante :

    http://www.toto.com/accueil.php?paramA=1&paramB=TITI

    où intéger cette fonction ? comment l'exploiter ? ...
     
  2. xrates
    xrates WRInaute discret
    Inscrit:
    17 Juin 2005
    Messages:
    73
    J'aime reçus:
    0
    Je serais intéressé +1

    La met t'on sur chaque page?


    merci
     
  3. alain-b
    alain-b WRInaute occasionnel
    Inscrit:
    17 Décembre 2002
    Messages:
    335
    J'aime reçus:
    0
    A mon avis il faut commencer dans le .htaccess à rediriger toutes les pages html vers le fichier index.php.

    La fonction Php sert a extraire les variables utiles de l'adresse html. La variable $url est $_SERVER['REQUEST_URI']

    La fonction filtre index.php et a partir de variables, on construit alors les pages spécifiques.
     
  4. Sami
    Sami Nouveau WRInaute
    Inscrit:
    21 Septembre 2002
    Messages:
    49
    J'aime reçus:
    0
    c-a-d que dans notre page index.php on aura un truc du genre :
    Code:
    <?
    ...
    header(lienurlrewriting($url));
    ?>
    
    c'est ça ?[/quote]
     
  5. alain-b
    alain-b WRInaute occasionnel
    Inscrit:
    17 Décembre 2002
    Messages:
    335
    J'aime reçus:
    0
    Je crois que j'avais mal lu le code. En fait cette fonction n'est pas utilisée pour remplacer le module rewrite d'apache mais pour générer des adresses html dans un script php. ( C'est l'opération inverse .. par exemple dans un script de forum ou de petites annonces, c apermet de générer des adresses html).

    Mais c'est tout a fait possible de se passer du module rewrite. Comme je le disais on redirige toutes les pages avec l'extension HTML sur le fichier index.php et on utilise une routine qui parse l'adresse HTML récupérée dans REQUEST_URI pour extraire les variables. Il faut utiliser les fonction de traitement de chaines de caractère de php et les expressions régulières. Ce qui est aussi complexe que d'utiliser le mode rewrite dans le .htacess ...
     
  6. Sami
    Sami Nouveau WRInaute
    Inscrit:
    21 Septembre 2002
    Messages:
    49
    J'aime reçus:
    0
    et la fonction ci-dessus ne permet par de parser les url ? le pb c'est que l'utilité et surtout, l'utilication, n'est pas claire du tout !!!
    Si je demande des détails concernant cette fonction c'est parceque les règles définies dans le fichiers .htaccess ne veulent par marcher :( Mon but étant de faire l'urlrewriting pour des pages php comme index.php?marque=TOTO&id=1
     
  7. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    peut etre poster dans le forum htaccess et rewriting les regles qui ne fonctionnent pas, y'a pas mal de monde qui connaissent bien le sujet et qui sont pret a donner des conseils avisés ;-)
     
  8. alain-b
    alain-b WRInaute occasionnel
    Inscrit:
    17 Décembre 2002
    Messages:
    335
    J'aime reçus:
    0
    Si ton site utilise un script qui génére des adresses de ce type
    index.php?marque=TOTO&id=1
    tu peux effectivement utiliser la fonction pour transformer ces adresses en adresses avec extension HTML dans tes pages.
    Mais il faudra utiliser le module rewrite et le .htaccess lors de l'appel des pages pour effectuer l'opération inverse ( récupérer les variables)
     
  9. Sami
    Sami Nouveau WRInaute
    Inscrit:
    21 Septembre 2002
    Messages:
    49
    J'aime reçus:
    0
    :?: je n'ai pas de script qui génère ces url, j'ai une page index.php qui est appelée avec différents paramètres c'est tout. Et j'ai plein d'autres page de ce gente avec + ou - de paramètres.
     
  10. alain-b
    alain-b WRInaute occasionnel
    Inscrit:
    17 Décembre 2002
    Messages:
    335
    J'aime reçus:
    0
    Soit tu ré-écris à la main les adresses php en adresses html, soit tu utilises la fonction pour faire la meme opération.

    $lien_html=lienurlrewriting($lien_php)

    La 2em étape, c'est d'appliquer la regle inverse dans le .htaccess pour que le site fonctionne.
     
  11. chione
    chione Nouveau WRInaute
    Inscrit:
    10 Janvier 2006
    Messages:
    13
    J'aime reçus:
    0
    J'ai la réponse, il se trouve que j'avais déjà utilisé cette fonction avant.

    voilà, cette fonction transforme une url de la forme www.toto.com/tete.php?00=teteatoto en www.toto.com/tete-00-teteatoto.html.
    Pour que la fonction fonctionne, il faut soit l'écrire avant de l'appeler, soit le mettre dans un fichier fonction exemple fonctions.php puis de l'appeler avec un include include("fonctions.php");

    ensuite il te faut mettre un fichier htaccess aproprié qui contient des regex qui correspondent à la fonction: et le voilà:

    Code:
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule (.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html /$1$2&$3=$4$5\.html [N]
    RewriteRule (.*)-([^-]+)-([^-]*)(.*)\.html /$1.php?$2=$3$4 [L]
    RewriteRule ^(.*).html /$1.php [L]
    voilà, ça devrait fonctionner, seul truc, si vous n'etes pas dans le fichier racine (exemple vous etes sur www.toto.com/chemin/fichier.php, changé le fichier .htaccess comme suit:

    Code:
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule (.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html chemin/$1$2&$3=$4$5\.html [N]
    RewriteRule (.*)-([^-]+)-([^-]*)(.*)\.html chemin/$1.php?$2=$3$4 [L]
    RewriteRule ^(.*).html /$1.php [L]
    dans tous les cas, utilsez des url absolues et non relatives.

    Si y'a des questions je serais heureux d'y répondre.
     
Chargement...
Similar Threads - [URL Rewriting] utiliser Forum Date
[URL REWRITING] Redirection 301 pages générées URL Rewriting et .htaccess 12 Novembre 2013
[URL Rewriting] chez free.fr Développement d'un site Web ou d'une appli mobile 6 Juillet 2012
[URL REWRITING] Sous domaines (Blogs) URL Rewriting et .htaccess 8 Décembre 2010
[Url Rewriting] N'aurais je rien compris à la façon de coder le htaccess ? Débuter en référencement 12 Avril 2010
[réglé][Url rewriting] Enlever les variables de sessions URL Rewriting et .htaccess 5 Mars 2009
[URL Rewriting] Supprimer automatiquer les paramètres URL Rewriting et .htaccess 27 Février 2009
[URL REWRITING] Incohérence avec le fichier index ? Débuter en référencement 25 Janvier 2009
[URL rewriting] Réécrire des pages multiples de 8 en page-1 URL Rewriting et .htaccess 6 Décembre 2008
[URL Rewriting] Réécriture en fonction de la langue URL Rewriting et .htaccess 29 Janvier 2008
[URL Rewriting] - url 404 et trait d'union Débuter en référencement 11 Octobre 2007
[URL Rewriting] Comment empêcher le contournement? Débuter en référencement 14 Septembre 2007
[URL REWRITING] Liste des séparateurs conseillés URL Rewriting et .htaccess 12 Août 2007
[Url Rewriting] Punbb URL Rewriting et .htaccess 28 Octobre 2006
[resolu] [url rewriting] un débutant qui peine... au début URL Rewriting et .htaccess 2 Août 2006
[URL Rewriting] marche seulement en local URL Rewriting et .htaccess 1 Août 2006
[URLrewriting] J'arrive pas à trouver la bonne syntaxe !!! Débuter en référencement 5 Novembre 2005
[Url Rewriting] P'tite question URL Rewriting et .htaccess 29 Juillet 2005
[url rewriting] Dossier parent URL Rewriting et .htaccess 22 Juillet 2005
[Résolu][url_rewriting]Créer des répertoires virtuels URL Rewriting et .htaccess 23 Juin 2005
[url rewriting] Répertoires Virtuels URL Rewriting et .htaccess 17 Mai 2005