我想在Laravel应用程序中限制对public/templates/sb-admin-2
路径的访问。
添加此模板是设置步骤的一部分
antonioribeiro/tracker包。现在<MyDomain>/templates/sb-admin-2
将我带到模板而没有任何身份验证。让任何用户在生产中访问此模板没有意义。如何限制访问权限以便用户无法访问模板?
由于
答案 0 :(得分:1)
TL; DR;
<强>别&#39;吨强>
var targetVal = userInput;
game_id = _.find(apiResponse. finished, { game_id: targetVal })
这个词真的应该意味着公开。无论放在那里,每个人都应该可以使用。另外,Laravel(服务器)将首先检查文件系统,如果没有找到文件,那么它将要求PHP解释请求。
<强>可是... 强>
...你可以通过将文件放在一个单独的目录中来解决这个问题,然后通过php发布文件,例如:
首先,将public
重命名为public/templates/sb-admin-2
(例如)。这样,每当有人要求 templates 文件夹时,都必须通过Laravel。
其次,制作一条路线,检查Auth并返回询问文件的内容,否则将拒绝访问。
public/xcscxcsx
问题:
Route::get('/templates/sb-admin-2/{path?}', function () {
if(\Auth::check()) {
// 21 = characters count of "templates/sb-admin-2"
$newPath = substr(ltrim($_SERVER['REQUEST_URI'], '/'), 21);
return \File::get(
public_path('xcscxcsx/' . $newPath)
);
}
return 'access denied';
})->where(['path' => '.*']);
将显示在屏幕上。/templates/sb-admin-2/.gitignore
存在的人都会有
访问文件。所以也许把它们放在xcscxcsx
文件夹中,然后
与storage
解析答案 1 :(得分:0)
如果您将Apache 2.4用于Web服务器,则可以使用以下指令将IP列入白名单,并阻止其他人访问目录:
<Directory /var/www/MyDomain/public/templates/sb-admin-2>
Require ip 192.168.0.1
</Directory>
只需交换IP即可代替192.168.0.1
。您可以使用以下语法将多个IP地址添加到白名单:
Require ip 192.168.1.104 192.168.1.205
在此处阅读有关Apache 2.4访问控制的更多信息:https://httpd.apache.org/docs/2.4/howto/access.html