.htaccess et la configuration de l’hôte virtuel pour WordPress dans son propre répertoire

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.