Redirection automatique

Discussion dans 'URL Rewriting et .htaccess' créé par Urell, 31 Mars 2011.

  1. Urell
    Urell Nouveau WRInaute
    Inscrit:
    31 Mars 2011
    Messages:
    10
    J'aime reçus:
    0
    Salutation,

    J'ai commencé la redirection il y a 2 jours, et je me suis aperçu que c'était toujours la meme redirection qui est faite ( du moins du même style):


    Donc je me suis pourquoi ne pas tout faire sur une seule ligne,faire un truc "automatique",car je vais en avoir plusieurs à faire et dont certaines pourront être crées plus tard (c'est celles d'un menu, il sera possible de créer un sous menu, donc ne pas être obliger de retourner dans le .htaccess pour faire une nouvelle redirection). Seulement je n'y suis pas arrivé :?

    Voila, j’espère avoir été assez claire.

    Merci.
     
  2. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Code:
    RewriteRule ^(.*)\.php$ ?page=includes/$1.php [L]
    Attention à ne pas faire cette erreur :
    PHP:
    <span class="syntaxdefault"><br />require $_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'page'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault"> </span>
    Qui est une faille de sécurité.
     
  3. Urell
    Urell Nouveau WRInaute
    Inscrit:
    31 Mars 2011
    Messages:
    10
    J'aime reçus:
    0
    Merci je vais tester

    Je sais que c'est une faille, mais elle est gérée

    EDIT: RewriteRule ^(.*)\.php$ ?page=includes/$1.php [L] me retourne un internal server Error :/
     
  4. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Euh non, elle n'est pas gérée du tout là.

    Si je met, par exemple, "../admin/index.php" et que le fichier existe, je me retrouve avec la possibilité d'effectuer des actions dangereuses.
     
  5. Urell
    Urell Nouveau WRInaute
    Inscrit:
    31 Mars 2011
    Messages:
    10
    J'aime reçus:
    0
    seulement je fait des vérif en début de page et si on est pas logué en tant qu'admin sa ne marche pas

    if(!isset($_SESSION['admin']){
    blablabla...
    }

    (normalement ^^)

    Y'a une meilleur méthode?
     
  6. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Il n'y a pas de meilleur méthode, mais là, tu laisses une situation pouvant se trouver critique. La page d'admin était un exemple, mais dit toi que tous les fichiers peuvent être inclus de cette manière.

    Personnellement, je ferai :
    Code:
    RewriteRule (.*)\.php$ index.php?page=$1 [L]
    Ensuite, en PHP :
    PHP:
    <span class="syntaxdefault"><br />if </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'page'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> in_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'page'</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'truc'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'machin'</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> file_exists</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'includes/'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'page'</span><span class="syntaxkeyword">]</span><span class="syntaxstring">'.php'</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    require </span><span class="syntaxstring">'includes/'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'page'</span><span class="syntaxkeyword">]</span><span class="syntaxstring">'.php'</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault"> </span>
     
  7. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    728
    J'aime reçus:
    0
    +1 pour la vérification avec in_array() ;)
     
  8. Urell
    Urell Nouveau WRInaute
    Inscrit:
    31 Mars 2011
    Messages:
    10
    J'aime reçus:
    0
    ok merci du conseil
     
  9. Urell
    Urell Nouveau WRInaute
    Inscrit:
    31 Mars 2011
    Messages:
    10
    J'aime reçus:
    0
    Sa ne marche pas,il doit y avoir un bug quelque part :/, aucune page n'est appelé par require,

    le .htaccess doit aller à la racine ou dans le dossier includes?
     
  10. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    En général, on place ce fichier à la racine.

    Après, on ne sait rien de ta structure de fichier …
     
  11. Urell
    Urell Nouveau WRInaute
    Inscrit:
    31 Mars 2011
    Messages:
    10
    J'aime reçus:
    0
    il est a la racine, pour la structure

    racine/index.php ( qui comporte le require)
    racine/.htaccess
    racine/includes/truc.php
    racine/includes/machin.php
     
  12. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Essaie :
    Code:
    RewriteBase /
    RewriteRule (.*)\.php$ ./index.php?page=$1 [L]
    
     
  13. Urell
    Urell Nouveau WRInaute
    Inscrit:
    31 Mars 2011
    Messages:
    10
    J'aime reçus:
    0
    The requested URL /index.php was not found on this server.

    :/

    C'est pas grave,je vais revenir comme avant,voir pour modifier et faire le test avec in_array, peut être que came sautera aux yeux ^^
     
  14. Urell
    Urell Nouveau WRInaute
    Inscrit:
    31 Mars 2011
    Messages:
    10
    J'aime reçus:
    0
    C'est bon, apres un peu de recherche cela fonctionne avec 1 petite modif:

    RewriteRule (.*)\.html$ index.php?page=$1 [L]

    .html, car .php est utilisé dans mon script d'affichage.

    et
    Code:
    if (isset($_GET['page']) AND in_array($_GET['page'], array('accueil', 'manifestations'))  AND file_exists('includes/'.$_GET['page'].'.php')) {
       							 require 'includes/'.$_GET['page'].'.php';
    						}elseif(!isset($_GET['page'])){
    							require 'includes/home.php';
    						}
    						else echo "erreur";
     
Chargement...
Similar Threads - Redirection automatique Forum Date
redirection URL automatique par Google (www vers "sans www") - changement propriété? Débuter en référencement 24 Novembre 2017
Redirection automatique Développement d'un site Web ou d'une appli mobile 15 Novembre 2016
Créer une redirection automatique des anciennes vers les nouvelles URL URL Rewriting et .htaccess 20 Mars 2016
Seo joomla multi langue et redirections automatiques Référencement international (langues, pays) 12 Avril 2015
Aidez-moi à convaincre qu'il ne faut pas utilser de redirections automatique... Référencement international (langues, pays) 12 Avril 2015
Multilingue et redirection automatique. Débuter en référencement 9 Janvier 2015
Redirection automatique d'une page 403 et 404 Débuter en référencement 12 Juin 2012
Référencement et redirection automatique Problèmes de référencement spécifiques à vos sites 1 Mai 2011
Sous domaine = redirection automatique ? Référencement international (langues, pays) 4 Avril 2011
Redirection automatique vers catégorie sous Worpress URL Rewriting et .htaccess 11 Février 2011