Je me suis penché sur les approches de développement WP modernes utilisant Composer, par exemple Bedrock ou WordPress-Skeleton .
J’essaie d’adapter ces approches et de créer mon propre champ opératoire de WP, alors je me suis retrouvé avec une structure de projet comme celle-ci:
my_project | \--app <-- custom wp-content folder | | | \--mu-plugins | \--plugins | \--themes | \--vendor <-- folder for composer packages | | | \... | \--wp <-- WordPress core folder | | | \... | |--composer.json |--composer.lock |--index.php |--wp-config-local.php |--wp-config.php
Tout fonctionne bien jusqu’à présent, mais le problème est que je dois définir my_project comme dossier racine Web, pour qu’un utilisateur puisse accéder à http: / my-project / vendor , par exemple, et voir tous mes packages de fournisseurs, que je pense que ce n’est pas bon …
Y a-t-il un moyen de définir un fichier .htaccess ou de configurer l’ hôte virtuel de telle sorte que je puisse utiliser cette structure de dossiers sans permettre à personne d’accéder à tous les fichiers et dossiers qui ne sont pas absolument nécessaires?
Je ne sais pas exactement ce que vous entendez par
pour qu’un utilisateur puisse accéder à http: / my-project / vendor, par exemple, et voir tous mes packages de fournisseurs
alors je vais vous donner quelques options.
Si les packages de fournisseurs sont supposés être complètement privés, vous pouvez le faire interdire:
RewriteRule ^/vendor - [F]
Si vous souhaitez mettre en liste blanche une adresse IP que vous utilisez peut-être:
Order deny,allow Allow from 1.2.3.4
Si vous voulez juste empêcher une liste des fichiers dans / vendor
Options -Indexes
Plus tard, Bedrock a récemment adopté la meilleure approche en séparant uniquement ce qui est nécessaire dans un répertoire web/
. Voir ici: https://github.com/roots/bedrock/pull/32
De cette façon, vous pouvez définir la racine de votre document hôte virtuel sur /path/to/site/web/
et ne pas avoir à vous soucier de bloquer manuellement l’access à divers dossiers / configurations.