cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 2010
-
29 déc. 2006 à 10:48
cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 2010
-
29 déc. 2006 à 12:57
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 ?
cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 20101 29 déc. 2006 à 12:41
function urlrewrite($ob)
{
//test si on doit réécrire
if(defined('_REWRITE_URLS_'))
{
preg_match_all('`]*)>([^<]*)`Usi',$ob,$liens, PREG_SET_ORDER);
$l='';
$a=array ('à','à','â','â');
$e=array ('é','ê','è','ë','é','egrave;','ê','ë');
foreach ($liens as $url)
{
//liste des query url dans $url[1]
$l.= $url[1];
$l.='
';
//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('&','',$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('&','',$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]
cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 20101 29 déc. 2006 à 12:57
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]