We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28173
    • 409 Posts
    Si un des sites où j’ai installé MODx, je suis confronté à un petit pb de règles dans le .htaccess
    En effet, avant d’installer MODx, mon fichier .htaccess possedait la règle suivante :
    RewriteRule ^article-([0-9]+)$ open.php?id=$1 [QSA,L]


    Aujourd’hui, cette règle est encore nécessaire. J’ai donc essayé de l’ajouter dans le .htaccess fourni par MODx de la manière suivante :
    RewriteRule ^article-([0-9]+)$ open.php?id=$1 [L]
    RewriteRule ^(.*)$ index.php?q=$1 [QSA,L]

    Dans cet ordre là ça devrait normalement fonctionner non ? Toute requête ne débutant pas pas "article-xxx" ou le xxx est un nombre quelconque devrait être traitée par la suivante non ?

    Car si je tente d’utiliser ce fichier .htaccess, plus rien ne marche, ou du moins mon site s’affiche comme si les CSS étaient désactivés.

    Qu’ais-je mal fait ?
      • 20488
      • 353 Posts
      Salut Spheerys,

      si tu as installé MODx dans un sous répertoire, n’oublie pas de rajouter

      RewriteBase /nomdetonsousrepertoire/


      Attention, du coup, cela risque de poser problème pour ta fameuse ligne article...

      Pour le reste, tout devrait fonctionner normalement puisqu’effectivement [L] marquera la fin de la lecture de ton .htaccess. Si tu éprouve un problème de CSS, regarde du coté du code source de ta page générée par MODx, normalement, tu devrais avoir une clause du type
      <base href="http://www.example.com/..." />
      


      Petite remarque, pourquoi ne pas installer modx dans un sous répertoire distinct ? Ainsi, tu aura deux fichiers .htacess, et moins de soucis...
        • 28173
        • 409 Posts
        j’ai préféré mettre MODx à la racine pour préserver le référencement existant.
        Par conséquent, j’ai laissé commenté la ligne RewriteBase du fichier .htaccess

        Voici le contenu de mon fichier .htaccess (du moins la partie qui nous intéresse) :
        Options +FollowSymlinks
        
        
        RewriteEngine On
        #RewriteBase /rep/
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        
        # If your MODx installation is in a subdirectory, change the following line to match the physical
        # path to the "root" of the site as follows:
        # RewriteRule ^(.*)$ /path/to/subdirectory/index.php?q=$1 [L,QSA]
        
        RewriteRule ^article-([0-9]+)(.*)$ open.php?id=$1 [L]
        RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

        En l’état, ça ne fonctionne pas :
        - www.mydomain.com met 15 bonnes secondes à charger avec comme msg dans la barre d’état une alternance de "En attente de mydomain.com" et de "Transfert des données depuis mydomain.com". Au final, j’ai le contenu de ma page d’accueil mais sans les styles CSS
        - www.mydomain.com/article-205 provoque le même résultat, avec le même temps d’attente.

        Si je commente la ligne RewriteRule ^article-([0-9]+)(.*)$ open.php?id=$1 [L], la page d’accueil s’affiche parfaitement bien, et en un clin d’oeil.

        J’ai aussi regardé ce que tu disais à propos de la clause base, mais je n’ai rien trouvé.
          • 28173
          • 409 Posts
          C’est bon c’est réglé ! smiley
          Le problème venait en fait des règles RewriteCond qui doivent IMPERATIVEMENT être placées APRES ma règle perso.
          Mon fichier .htaccess est donc le suivant :

          Options +FollowSymlinks


          RewriteEngine On

          ## Règle personnelle ##
          RewriteRule ^article-([0-9]+)(.*)$ open.php?id=$1 [L]

          #RewriteBase /rep/
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-d

          # If your MODx installation is in a subdirectory, change the following line to match the physical
          # path to the "root" of the site as follows:
          # RewriteRule ^(.*)$ /path/to/subdirectory/index.php?q=$1 [L,QSA]

          RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]