我很困惑什么构成“
最佳实践“对于基于
PHP网站的应用程序的结构.阅读本网站有一些建议.经常提到的一个结构是”文档根目录中没有任何php文件“.虽然这听起来像是一个好习惯,但我无法看到它是如何工作的 – Web服务器无法识别文档根目录之外的任何内容.我假设文档根目录是公共访问目录,如下所示:
app- | - htdocs - document root | | | - index.php | - css/ | - images/ | - PHP classes in here/ - Other PHP classes in here.../
或者上面示例中的“app”是文档根目录,而htdocs目录是站点结构的公共可访问区域吗?
接下来,我如何确保除了htdocs之外的目录中的文件没有公共访问权限?
解决方法
这个概念很简单,特别是如果您使用基于前端控制器的框架,无论是您自己的还是现有的(如Zend Framework).当所有请求都通过中央控制器时,必要时会包含处理请求所需的文件.包含的文件不必在Web根目录中工作.它们只需要可供控制器使用即可包含然后执行.因此,只有您的控制器需要位于Web根目录中.其他一切都可以在它之外.
仅供参考,这也适用于非OOP应用程序.您只需要在每个页面中包含所需的文件.
Web根目录中需要的是浏览器请求的任何图像,样式表,javascript文件等.