我一直在研究使用Composer等的现代WP开发方法,例如Bedrock或WordPress-Skeleton。
我正在尝试调整这些方法并创建我自己的 WP 样板,所以我最终得到了这样的项目结构:
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
到目前为止一切正常,但问题是我必须my_project设置为 Web 根文件夹,以便用户可以转到 http:/my-project/vendor,例如,并查看我所有的供应商包,我认为这不好......
那么,有没有办法设置一些.htaccess文件或配置虚拟主机,以便我可以使用该文件夹结构,但不允许任何人访问所有那些不是绝对必要的文件和文件夹?
我不确定你的意思
例如,用户可以转到 http:/my-project/vendor,以及 查看我的所有供应商包
所以我会给你几个选择。
如果供应商软件包应该是完全私有的,您可以禁止它:
RewriteRule ^/vendor - [F]
如果要将某个 IP 列入白名单,您可能正在使用:
<Directory /vendor>
Order deny,allow
Allow from 1.2.3.4
</Directory>
如果您只想阻止列出/vendor 中的文件
<Directory /vendor>
Options -Indexes
</Directory>
后来,但Bedrock最近采取了更好的方法,将只需要的内容分离到web/
目录中。看这里: https://github.com/roots/bedrock/pull/32
这样,您可以将虚拟主机文档根目录设置为 /path/to/site/web/
,而不必担心手动阻止对各种文件夹/配置的访问。