IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

RewriteRule htaccess bloque css et jQuery


Sujet :

Apache

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut RewriteRule htaccess bloque css et jQuery
    Bonjour à tous
    je suis amateur de programmation et je suis tombé sur un problème
    me permet de vous le poser ici ( pas sûr que ce soit le bon endroit, excusez moi d'avance. C'est mon premier post. )

    j'utilise un fichier htaccess pour envoyer du GET par un url plutôt sympa.
    quand je ne rewrite que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^admin$ index.php?page=admin [L]
    tout marche à la perfection!
    par contre, lorsque je rewrite plus que ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteRule ^admin$ index.php?page=admin [L]
    RewriteRule ^admin\/(.+)$ index.php?page=admin&cat=$1 [L]
    RewriteRule ^admin\/(.+)\/(.+)$ index.php?page=admin&cat=$1&sscat=$2 [L]
    que ce soit "admin + un ou admin +2" ça me fait planter jQuery et mon css.
    en me renvoyant une erreur par fichier .js

    SyntaxError: syntax error
    <!doctype html>
    voilà, si vous pouvez m'aider... ce serait p**** de formidable.
    en prenant en compte que je suis bien bien bien amateur! :p
    merci

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    2 choses :
    1. Il faut mettre les chemins vers tes CSS et JS en relatif par rapport à la racine du site : href="/..."
    2. Ajoute les 2 lignes suivantes avant chaque RewriteRule de ton fichier :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      RewriteCond %{REQUEST_FILENAME} -f
      RewriteCond %{REQUEST_FILENAME} -d

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    merci je vais essayer ça!

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    j'ai essayé mais ça ne fonctionne pas...

    j'ai mis ça,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    RewriteEngine on
     
    ErrorDocument 404 http://ikarr.net
     
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^deconnexion$ index.php?page=deconnexion [L]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^admin$ index.php?page=admin [L]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^admin\/(.+)$ index.php?page=admin&cat=$1 [L]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^admin\/(.+)\/(.+)$ index.php?page=admin&cat=$1&sscat=$2 [L]
    et pour mon head:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <!doctype html>
    <html lang="fr">
    <head>
      <title><?= $nom_du_site; ?></title>
       <base href="<?= $sys_phpself; ?>" />
      <meta charset="utf-8"/>
      <meta name="description" content="<?= $description_du_site; ?>"/>
      <link rel="stylesheet" href='/organ/intern/code/css/ionicons.min.css'>
      <?php if($sys_page==="admin"){ ?><link rel="stylesheet" href='/organ/intern/code/css/opensans.css'><?php } ?>
      <link rel="stylesheet" href='/organ/intern/code/css/reset.css'>
      <?php if($sys_page==="admin"){ ?><link rel="stylesheet" href='/organ/intern/code/css/css_admin.css'><?php } ?>
      <link rel="stylesheet" href='/organ/intern/code/css/css_construct.css'>
      <link rel="stylesheet" href='/organ/user/code/css.css'>
      <?php if($test_ok){ ?><link rel="stylesheet" href='/organ/intern/code/css/css_test.css'><?php } ?>
      <script type="text/javascript" src='/organ/intern/code/js/jquery.js'></script>
      <!--[if lt IE 9]><script src="bower_components/html5shiv/dist/html5shiv.js"></script><![endif]-->
      <script type="text/javascript" src='/organ/intern/code/js/js_construct.js'></script>
      <?php if($sys_page==="admin"){ ?><script type="text/javascript" src='/organ/intern/code/js/js_admin.js'></script><?php } ?>
      <script type="text/javascript" src='/organ/user/code/js.js'></script>
      <?php if($test_ok){ ?><script type="text/javascript" src='/organ/intern/code/js/js_construct.js'></script><?php } ?>
    </head>
    <body>
    même en enlevant la balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <base href="<?= $sys_phpself; ?>" />
    il faut faire autre chose? merci

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Euh, comment dire... Je me suis un peu planté dans ma config : il faut mettre un ! devant chaque -f et -d :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    Désolé

    Sinon, si ça ne change rien, passe ton navigateur en mode debug pour voir pourquoi il ne charge pas ou n'applique pas les CSS.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    yop, bon alors en fait j'ai mis cette variable dans les sources des css et js... et ça a l'air de marcher... en plus je peux faire mon rewrite genre "monSite/admin/unTruc/unAutreTruc" et ça marche en local et en ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sys_phpself="http://".$_SERVER["HTTP_HOST"].substr($_SERVER['PHP_SELF'], 0, -9);
    j'utilise "substr()" pour ne pas prendre en compte le "index.php".

    et je n'utilise pas les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} -d
    qui me semble ne servir à rien dans mon cas.?!? me trompe-je?
    merci encore pour votre aide.


  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Si, ça peut servir car le filtre ^admin\/(.+)\/(.+)$ de ta dernière règle matche une URL du style /admin/css/style.css, ce qui fait que cette URL est renvoyée vers index.php, d'où une explication possible sur le fait que les CSS ne fonctionnent pas.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  8. #8
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    ok cool, ben faudra qu'un jour je me penche sérieusement sur les rewrite! je vais les mettre alors du coup pour être sûr!
    mais je me demandais si je fais plutôt bien les choses, c'est à dire de le faire avec la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sys_phpself="http://".$_SERVER["HTTP_HOST"].substr($_SERVER['PHP_SELF'], 0, -9);
    il y a certainement un moyen mieux pensé non? je veux dire pour avoir une cohérence entre le local et le on line sans devoir changer tous les chemin en absolu chaque fois ( à priori l'absolu est fortement conseillé non? )
    enfin j'y connais pas grand chose encore mais bon... on fait avec ce qui marche.


    merci beaucoup en tout cas, ça me permet d'avancer!

Discussions similaires

  1. Réponses: 66
    Dernier message: 09/06/2015, 00h17
  2. transparence qui bloque mes scripts jquery
    Par kate59 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/01/2010, 15h24
  3. Réponses: 0
    Dernier message: 01/02/2009, 23h19
  4. .htaccess bloque l'accès après 15 tentatives ?
    Par AlphaYoDa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 23/01/2008, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo