Nginx et dossier plugins

YannicYannic Member
janvier 2018 modifié dans Entraide
Salutations, habituellement je bloque l’accès aux dossiers de plugins cependant avec plux on peux pas vraiment le faire a cause des css et js si il y en as.
Donc je cherche si il est possible de faire sous nginx quelque chose comme:

La lecture directe des fichiers css et js du dossier plugins sont autorisés , le reste ne l'est pas

exemple
location ~ /(plugins/*.css|plugins/*.js)
{
allow all;
}
location ~ /(plugins/)
{
deny all;
}

je ne connais pas trop nginx, je viens de m'y mettre pour mon dernier site.
merci de votre aide.

Buster/NGINX/PHP7/PluXml5.8

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Au cas où cela t'aurais échappé, il y a quelques exemples de config sur le Wiki :
    http://wiki.pluxml.org/index.php?page=NGINX_PluXml

    Je n'ai pas le temp de tester dans l'immédiat, mais un truc comme ceci devrait faire l'affaire
    [== nginx.conf ==]
    location /plugins/ {
      deny all;
    }
    location ~ /plugins/(?:admin|site)\.css$ {
      allow all;
    }
    

    Ces 2 fichiers devraient être déjà déplacés dans le dossier data depuis longtemps.
    En effet, si on veut basculer entre différents dossiers de données (data, data-pour-site1, data-site2, ...) et que les plugins ne sont pas tous activés de la même façon , cela met le bazar.
  • YannicYannic Member
    janvier 2018 modifié
    bazooka07 a écrit:
    Au cas où cela t'aurais échappé, il y a quelques exemples de config sur le Wiki :
    http://wiki.pluxml.org/index.php?page=NGINX_PluXml

    Je n'ai pas le temp de tester dans l'immédiat, mais un truc comme ceci devrait faire l'affaire
    [== nginx.conf ==]
    location /plugins/ {
      deny all;
    }
    location ~ /plugins/(?:admin|site)\.css$ {
      allow all;
    }
    

    Ces 2 fichiers devraient être déjà déplacés dans le dossier data depuis longtemps.
    En effet, si on veut basculer entre différents dossiers de données (data, data-pour-site1, data-site2, ...) et que les plugins ne sont pas tous activés de la même façon , cela met le bazar.


    Oui oui j'avais vu pour le wiki et m'en suis servi merci.

    Je vais tester le code à soir, merci aussi ;)

    Sinon oui, ils aurais mieux été dans data ou autres
    Merci en tout cas.

    Buster/NGINX/PHP7/PluXml5.8

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    @Yannic,

    J'ai pris le temps de faire quelques essais.
    Note d'abord qu'il y a déjà un sélecteur "location /plugins/" sur la config du wiki.
    Voici une solution que j'ai testé.
    Modifie le config du wiki comme suit en ajoutant "deny all;"
    [== nginx.conf ==]
    location /plugins/ {
       deny all;
       add_header Cache_Control public;
       expires 12h;
    }
    
    Ensuite, pour accorder quelques permissions en lecture, il faut rajouter à la fin du fichier :
    [== nginx.conf ==]
    location ~ \/plugins\/.*\.(?:css|js|png|jpg|gif)$ {
       allow all;
    }  
    
    Si tu as quelque connaissance en expressions régulières, tu dois pouvoir comprendre le sélecteur employé.
    Certains plugins proposent des images d'où l'ajout pour png, jpg, gif

    Tu peux éventuellement dupliquer la règle pour le thème.
  • YannicYannic Member
    janvier 2018 modifié
    Oui merci bazooka07

    et effectivement je déplace toujours mes dossiers pluxml :D

    dans une structure du genre

    pluxdatas/articles
    pluxdatas/commentaires
    pluxdatas/configuration
    pluxdatas/plugins
    pluxdatas/statiques

    et en racine ou dans un autre sous dossier les deux
    medias
    themes

    merci pour ton code c'est parfait je vais l'adapter a mon cas precis


    pour les css/js/png des plugins, je m'arrange sur le site pour qu'il ne soit pas chargés a partir du dossier de plugins pour garder mon dossier plugins caché et les intégrer directement dans mon thème si vraiment il y en as besoin coté site hormis quand je suis dans la zone d'administration ou la pas de soucis a les charger d'ou mon besoin de les autoriser.
    merci encore a toi.

    Buster/NGINX/PHP7/PluXml5.8

Connectez-vous ou Inscrivez-vous pour répondre.