Laravel 4:阻止访问除public之外的任何文件或文件夹

时间:2014-05-12 01:31:38

标签: php laravel laravel-4

我正在开展小型项目,并将其托管在普通的Godaddy主机计划中,问题是:所有文件系统都可以通过互联网访问。

那么,如何阻止访问除/ public

之外的任何文件夹或文件
CONTRIBUTING.md  
app/     
artisan  
bootstrap/   
composer.json    
composer.lock    
phpunit.xml  
public/  
server.php   
vendor/

感谢,

2 个答案:

答案 0 :(得分:2)

为什么不拆分项目?将public的内容上传到您的文档根目录,将其余内容上传到其他位置(例如您的主目录)。然后只需修改public/index.php文件中的两个路径以指向正确的位置,例如

$path = __DIR__ . '/../my-app';

require $path . '/bootstrap/autoload.php';

$app = require_once $path . '/bootstrap/start.php';

答案 1 :(得分:2)

如果您将apache站点文档根目录指向/public,则人们无法访问您公开之外的应用程序中的任何其他文件。即使他们试图做以下事情:

http://yoursite.com/../

修改

这不应该依赖于框架来做,保护站点上的目录是Web服务器作业,因此您需要在服务器上找到解决方案:虚拟主机,文档根,Web根目录,域目录或甚至.htaccess配置。

在某些共享托管公司中,您可以轻松地执行此操作,其中一些具有cPanel或Plesk,但是其他内容(如Hostgator)将为您提供足够的配置,以便您可以将目录根目录更改为/ public。如果你没有cPanel账户,看起来GoDaddy并没有多大帮助,但是,仍然有一些技巧可以帮助你按照你应该做的方式做到:http://support.godaddy.com/help/article/4067/setting-up-a-non-web-accessible-root-folder。可能还有其他人。