Aller au contenu

Robix

Membre
  • Compteur de contenus

    6
  • Inscrit(e) le

  • Dernière visite

Messages postés par Robix

  1. Salut à tous,

    Le problème est résolu, cela était du à un mauvais formatage de mon htaccess (édité sous notepad++), avec le blocnote cela est passé tout de suite. Bref erreur à la con qui m'a fait tourné en rond un bon bout de temps.

    En tout cas merci à tous pour votre patience

    Robin

    ps: htaccess final

    RewriteEngine on
    RewriteRule ^(index.php|admin|images|pop-up\.php|imprimer\.php|afficher_image\.php|imprimer_guide\.php|sitemap\.xml|style\.css|favicon\.ico|robots\.txt) - [L]
    RewriteRule ^(.*)$ /index.php [L]

    Je redirige tout vers index.php et c'est lui qui traite la page demandé :

    CODE
    <?php

    // MODE DEBUG

    //echo $_SERVER['REQUEST_URI'];

    $racine ='/';

    if (ereg('^'.$racine.'+$', $_SERVER['REQUEST_URI'], $req)){

    include('front.php');

    }

    else if (ereg('^'.$racine.'(fr|en)$', $_SERVER['REQUEST_URI'], $req)){

    header("Location:".$req[1].'/');

    }

    else if (ereg('^'.$racine.'(fr|en)/$', $_SERVER['REQUEST_URI'], $req)){

    $lang = $req[1];

    include('lang_'.$lang.'.php');

    $_GET['page'] = 'accueil';

    $_GET['lang'] = $lang;

    include 'index.inc.php';

    }

    else{

    if(ereg('^'.$racine.'(fr|en)/([a-zA-Z0-9\.&-]*)\?mode=([a-zA-Z0-9\.]+)\&cat=([a-zA-Z0-9\.]+)$', $_SERVER['REQUEST_URI'], $req)){

    if ($req[1]=='fr'){

    $lang = 'fr';

    include('lang_fr.php');

    }else{

    $lang = 'en';

    include('lang_en.php');

    }

    if ($req[2]==*************| $req[2]==**************){

    $_GET['page'] = 'location';

    $_GET['lang'] = $lang;

    $_GET['mode'] = $req[3];

    $_GET['cat'] = $req[4];

    include 'index.inc.php';

    }else{

    echo ' Mauvaise URL : 404';

    die();

    }

    }else if(ereg('^'.$racine.'(fr|en)/([a-zA-Z0-9\.&-]*)\?mode=([a-zA-Z0-9\.]+)$', $_SERVER['REQUEST_URI'], $req)){

    if ($req[1]=='fr'){

    $lang = 'fr';

    include('lang_fr.php');

    }else{

    $lang = 'en';

    include('lang_en.php');

    }

    if ($req[2]==********| $req[2]==***********){

    $_GET['page'] = 'location';

    $_GET['lang'] = $lang;

    $_GET['mode'] = $req[3];

    include 'index.inc.php';

    }else{

    echo ' Mauvaise URL : 404';

    die();

    }

    }else if(ereg('^'.$racine.'(fr|en)/([a-zA-Z0-9\.&-]*)\?appart=([a-zA-Z0-9\.]+)$', $_SERVER['REQUEST_URI'], $req)){

    // Langue

    if ($req[1]=='fr'){

    $lang = 'fr';

    include('lang_fr.php');

    }else{

    $lang = 'en';

    include('lang_en.php');

    }

    // Pages

    if ($req[2]==*************| $req[2]==*************){

    $_GET['page'] = 'pre-reservation';

    $_GET['lang'] = $lang;

    $_GET['appart'] = $req[3];

    include 'index.inc.php';

    }else{

    echo ' Mauvaise URL : 404';

    die();

    }

    }else if (ereg('^'.$racine.'(fr|en)/([a-zA-Z0-9\.&-]*)$', $_SERVER['REQUEST_URI'], $req)){

    // Langue

    if ($req[1]=='fr'){

    $lang = 'fr';

    include('lang_fr.php');

    }else{

    $lang = 'en';

    include('lang_en.php');

    }

    // Pages

    if ($req[2]=='' | $req[2]=='home.html' | $req[2]=='accueil.html'){

    $_GET['page'] = 'accueil';

    }

    ...

    else if ($req[2]=='tignes.html'){

    $_GET['page'] = 'tignes';

    }

    else{

    echo 'Page inconnu : 404';

    die();

    }

    $_GET['lang'] = $lang;

    include 'index.inc.php';

    }else{

    echo ' Mauvaise URL : 404';

    die();

    }

    }

    ?>

  2. Relis bien ce que Dan t'a écrit :

    RewriteRule ^testing\.php$ - / [L]

    Tu as oublié le "-" qui précise d'ignorer le fichier testing.php, sinon on tourne en rond.

    Il suffit pas de recopier (sans se tromper lol), c'est bien aussi de comprendre ;-)

    Je ne savais pas à quoi servait le "-". Cela ne marche toujours pas, mais que pense tu du reste : erreur non detecté à partir de la 2eme ligne ?

  3. Il faut virer le $1 déjà c'est sûr.
    La condition marche bien sur easyphp pourtant...

    RewriteEngine On
    RewriteBase /
    RewriteRule ^testing\.php$ / [L]
    RewriteRule ^(.*)$ /testing.php [L]

    ne fonctionne toujours pas... (avec ou sans RewriteBase /)

    Ce que je comprends moins c'est que si je fait un htaccess :

    RewriteEngine On
    azerty
    RewriteBase /
    RewriteRule ^testing\.php$ / [L]
    RewriteRule ^(.*)$ /testing.php [L]

    Il ne me met pas d'erreur.

    Si je met :

    azerty
    RewriteEngine On
    RewriteBase /
    RewriteRule ^testing\.php$ / [L]
    RewriteRule ^(.*)$ /testing.php [L]

    Il me met : Internal Server Error

    Bizarre non ?

  4. |robots\.txt) [NC]

    Il manque pas un $ avant le [NC] par hasard ;

    Mais c'est étonnant que ça fonctionne en local ; tu es sûr d'avoir la même chose ?? (à part le /index.php, obligatoire chez OVH)

    Je crois que le ^ et le $ sont facultatifs (mais plus rigoureux certes). Cela fonctionne en local avec et sans $...

    Je me demande tout de même où mod_rewrite va chercher ton $1 dans "RewriteCond $1 .... " :?:

    Hum oui effectivement c'est étrange (je suis pas spécialiste de mode rewrite) mais en tout cas il me prends bien en compte ma condition (sur Apache en local).

    Ce que je ne comprends pas c'est que juste en placant mon .htaccess sur mon mut OVH (dossier /www/) contenant (cf http://guide.ovh.com/HtaccessModRewrite ):

    RewriteEngine On
    RewriteRule .* /testing.php

    (également testé ^(.*)$, avec ou sans / etc)

    Rien ne se passe quand je tape www.monsite.com/blablabla. (Il ne va pas chercher testing.php, il met Page Introuvable).

    Y a-t-il moyen de tester simplement le fonctionnement de fichier htaccess sur mon compte ?

    Merci...

  5. Bonjour à tous,

    J'ai mis en place l'URL Rewriting sur mon site en local sur Easyphp, cela marche nickel avec :

    httpd.conf :

    <Directory "C:/Logiciels/EasyPHP/www/*******">
    Options FollowSymLinks Indexes
    RewriteEngine on
    RewriteCond $1 !^(panel|admin|images|sitemap\.xml|style\.css|favicon\.ico|robots\.txt) [NC]
    RewriteRule ^(.*)$ index.php
    </Directory>

    (Le but étant de tout rediriger vers index.php.)

    J'ai voulu le basculé sur OVH (hébergement mutualisé 60gp) en faisant un .htaccess :

    RewriteEngine on
    RewriteCond $1 !^(panel|admin|images|pop-up\.php|imprimer\.php|afficher_image\.php|imprimer_guide\.php|sitemap\.xml|style\.css|favicon\.ico|robots\.txt) [NC]
    RewriteRule .* /index.php [L]

    Le htaccess est placé dans le bon dossier (/www/), j'ai tout testé pendant 2 jours, impossible à faire marcher... :mad2:

    Le .htaccess ne semble pas pris en compte par apache d'OVH :

    quand j'écris n'importe quoi sur la premiere ligne (RewriteEngine on). Il me sort Internal Server Error

    quand j'écris n'importe quoi sur une des lignes suivantes : il ne me dit rien, les règles de réécriture ne sont pas absolument pas prises en compte.

    Est ce que quelqu'un aurait une idée pour me faire avancer ?

    Merci d'avance :blush:

    Robin

×
×
  • Créer...