begin process at 2012 05 30 18:27:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Server Web

 > 

Apache

 > 

pb URL Rewrite


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb URL Rewrite

vendredi 29 décembre 2006 à 10:48:50 | pb URL Rewrite

cedriclomb

Bonjour,
Voila mon petit problème : chez moi ca marche et  comme d'hab  bah sur  internet ca marche moins bien !
J'ai activé l'url rewriting mais en fait quand je clique sur un lien c'est nickel sauf que apache me redirige completement sans garder la meme url !
ex je clique sur article_1.html et je me retrouve sur index.php?com=article&id=1 au lieu d'avoir une barre d'adrresse fixe. Comment je peux faire pour qu'elle ne change pas a la redirection ?
vendredi 29 décembre 2006 à 11:52:21 | Re : pb URL Rewrite

Anthomicro

Salut, quel est ton code que tu as utilisé pour faire la redirection ?
vendredi 29 décembre 2006 à 12:41:11 | Re : pb URL Rewrite

cedriclomb

function urlrewrite($ob)
    {
    //test si on doit réécrire
    if(defined('_REWRITE_URLS_'))
        {
        preg_match_all('`<a href=["|\']index.php\?([^"|\']+)["|\']([^>]*)>([^<]*)</a>`Usi',$ob,$liens, PREG_SET_ORDER);
            $l='';
            $a=array ('à','&agrave;','&acirc;','â');
            $e=array ('é','ê','è','ë','&eacute;','egrave;','&ecirc','&euml;');
        foreach ($liens as $url)
            {
            //liste des query url dans $url[1]
            $l.= $url[1];
            $l.='<br>';
            //test des urls
            //si c'est un article
            if (strstr($url[1],'itemID='))
                {
                //on decoupe selon la forme lang_article_sectionID_itemID
                //separation de la langue
                $lang=explode('lang=',$url[1]);
                //separation de la section
                $sect=explode('sectionID',$lang[0]);
                $sect[1]=str_replace('=','',$sect[1]);
                $sect[1]=str_replace('&','',$sect[1]);
                $sect[1]=str_replace('&amp;','',$sect[1]);
                //separation du numero de l'item
                $item=explode('itemID',$sect[1]);
                if($lang[1]=='') { $lang[1]=lang; }
                //netoiyage des accents pour le titre
                $url[3]=str_replace($e,'e',$url[3]);
                $url[3]=str_replace($a,'e',$url[3]);
                $ob=str_replace('index.php?'.$url[1],$lang[1].'_article_'.$item[0].'_'.$item[1].'_'.$url[3].'.html',$ob);
                }
            else if (strstr($url[1],'sectionID='))
                {
                //on decoupe selon la forme lang_article_sectionID_itemID
                //separation de la langue
                $lang=explode('lang=',$url[1]);
                //separation de la section
                $sect=explode('sectionID',$lang[0]);
                $sect[1]=str_replace('=','',$sect[1]);
                $sect[1]=str_replace('&amp;','',$sect[1]);
                $sect[1]=str_replace('&','',$sect[1]);
                
                //separation du numero de l'item
                $item=explode('itemID',$sect[1]);
                if($lang[1]=='') { $lang[1]=lang; }
                $url[3]=str_replace($e,'e',$url[3]);
                $url[3]=str_replace($a,'e',$url[3]);
                $ob=str_replace('index.php?'.$url[1],$lang[1].'_section_'.$item[0].'_'.$url[3].'.html',$ob);
                }
            else
                {
                //on decoupe selon le schéma index_var1_val1_var2_val2
                //on coupe donc la chaine au & pour separer les variables
                $aff='';
                $query=explode('&',$url[1]);
                    foreach($query as $q)
                        {
                        $rep=explode('=',$q);
                        $aff.='-';
                        $aff.=$rep[0].'-'.$rep[1];
                        }
                $aff=str_replace('=','',$aff);
                $aff=str_replace('amp;','',$aff);
                $ob=str_replace('index.php?'.$url[1],'index'.$aff.'.html',$ob);
                
                }
            }
        }
    return $ob;
    }
ob_start('urlrewrite');
COntenu
ob_get_flush()
et dans le htaccess
_______________________________

Options +FollowSymlinks
RewriteEngine on

#Gestion dynamique des URL de maniere recrusive pour des vars en minuscule
RewriteRule index(-.+)-([^-]*)-([^-]*)([^-]*)\.html index$1&$2=$3$4\.html [N]
RewriteRule index-([^-]+)-([^-]*)(.*)\.html http://localhost/tut/index.php?$1=$2$3 [L]

#Page index classique ou avec la langue
RewriteRule index.html http://localhost/tut/index.php [L]
RewriteRule (.*)_index.html http://localhost/tut/index.php?lang=$1 [L]

#Sections et articles
RewriteRule (.*)_section_(.*)_(.*)\.html http://localhost/tut/index.php?sectionID=$2&lang=$1 [L]
RewriteRule (.*)_article_(.*)_(.*)_(.*)\.html http://localhost/tut/index.php?sectionID=$2&itemID=$3&lang=$1 [L]

#Gestion dynamique des URL de maniere recrusive pour des vars en minuscule ALBUMS
RewriteRule gallery-(.*)-([^-]*)([^-]*)\.html http://localhost/tut/gallery-$1/$2$3\.html [N]
RewriteRule gallery-([^-]+)/([^-]*)(.*)\.html http://localhost/tut/index.php?composant=gallery&album=$1/$2$3 [L]

____________________________________
Mais le liens marchent le truc c'est que l'url ne reste pas en haut dans la barre d'adresse
vendredi 29 décembre 2006 à 12:50:08 | Re : pb URL Rewrite

Anthomicro

Réponse acceptée !
Juste après le RewriteEngine On, mets un RewriteBase /tut/ Ensuite enlève tous tes http://localhost/tut/ Et lorsque tu fais une rewrite, pense à faire ceci : RewriteRule ^index.html$ index.php [L] (Rajouter ^ qui signifie "début de la chaîne" et $ qui signifie "fin de la chaîne"). Fais ça pour toutes tes rewrites, ça devrait mieux fonctionner.
vendredi 29 décembre 2006 à 12:57:48 | Re : pb URL Rewrite

cedriclomb

Merci ca marche sauf que j'ai du ne ma mettre les ^ et  $ pour la methodes recursive
#Gestion dynamique des URL de maniere recrusive pour des vars en minuscule
RewriteRule index(-.+)-([^-]*)-([^-]*)([^-]*)\.html index$1&$2=$3$4\.html [N]
RewriteRule index-([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]


Cette discussion est classée dans : pb, url, marche, clique, rewrite


Répondre à ce message

Sujets en rapport avec ce message

Probleme url [ par yannj1988 ] J'utilise une version modifier de PHPMYADMIN et dans le fichier config on me demande l'url absolute.Quand je m'est une url du type http://127.0.0.1/ph pb de variable de retour [ par eax ] salutj'ai un petit pb avec une variable de retour d'une fonction:j'ai une fonction function test (){ $retour['date']=$date; $retour['heure']=$he Forum ? [ par Michael ] Quelqu'un sait comment marche le forum de arnotic ? Je comprends rienQuand je lance index.php3, j'ai une page blanche ! (j'ai essayé avec easyphp et s Pb de passage de variables aux pages php [ par PsychoPat ] Bonjour, je viens d'installer sur ma passerelle Linux un serveur Apache/PHP/MySQL. Après 2 jours de galère le voilà enfin qui marche. Mais il y a un p Pb de sockets (pour Tortue Géniale) [ par berserker21 ] Je m'adresse a toi parce qu'apparament t'es un peu le maitre de sockets (mais si d'autres ont des idées n'hésitez pas), voila:G un serveur en C qui at piti pb d'url [ par Morgul ] j'ai un formulaire avec un bouton et une zone de texte (ki sapelle valeure), j'ai utilisé la méthode get et comme action j'ai: page1.php?tmp=table, ma URL Rewriting & .htaccess [ par dorian53 ] Bonjour,j'aimerais pouvoir tester l'URL Rewriting en local sur mon PC. Je suis sous ephp 1.7. Pour le moment j'ai laissé toutes les config par défaut, PB de DIV [ par lenuldeservice ] Salut j'ai créer une fonction qui m'ouvre une petite pop-up lorsque je passe la souris sur un lien ou autre, le seul pb c'est que ca marche avec une d pb avec un `group by` [ par eax ] salut à tous!!g un soucis avec une requete et je pense que c pas très compliqué, mais je trouve pas:g une table `photos` avec un champ date (date d'up petit pb avec mysql sous linux [ par eax ] salutben voilà, je commence le php sous linux et voilà qu'en bidouillant la config des utilisateurs mysql, g supprimé tous les users, donc avec webmin


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales