所以我想出了如何做到这一点。我会举例说明。
假设您是一个域http://domain.com。以下是您可能正在使用的结构示例:
domain.com/ (the root of your web hosting)
|-- yourlaravel4_base/
|-- [some other folders...]
|-- public_html/ (where your html files and such go)
| |-- [some other folders...]
| |-- yourlaravel4/
/public_html/ 是您的网络托管文件的可公开访问部分的根。
您想在/public_html/(在本例中为/public_html/yourlaravel4/)中创建一个子文件夹。在此子文件夹中,您将存储 Laravel 4 public/ 文件夹的所有内容。
现在,剩下的文件。您必须转到您的虚拟主机文件的根目录,也就是说,您想处于domain.com/ 级别,因此能够看到public_html/ 和其他一些文件夹。然后,我们需要在这里创建一个文件夹,用于存放 Laravel 4 的基础文件。在这种情况下,它是domain.com/yourlaravel4_base/。在yourlaravel4_base/ 中,我们需要存储存在于基本 Laravel 4 目录中的每个文件和文件夹。那将是app/、bootstrap/、vendor/、server.php 等。除了/public/ 文件夹之外的所有内容,您已经将其内容存储在public_html/yourlaravel4/ 中。
最后,我们需要编辑 2 个文件:Laravel 的 /bootstrap/paths.php 和 /public/index.php。
在paths.php 文件中,替换:
'app' => __DIR__.'/../app',
与:
'app' => __DIR__.'/../../yourlaravel4_base/app',
在paths.php 文件中,替换:
'public' => __DIR__.'/../public',
与:
'public' => __DIR__,
在paths.php 文件中,替换:
'base' => __DIR__.'/..',
与:
'base' => __DIR__.'/../../yourlaravel4_base',
在paths.php,替换:
'storage' => __DIR__.'/../app/storage',
与:
'storage' => __DIR__.'/../../yourlaravel4_base/app/storage',
在index.php,替换:
require __DIR__.'/../bootstrap/autoload.php';
与:
require __DIR__.'/../../yourlaravel4_base/bootstrap/autoload.php';
在index.php,替换:
$app = require_once __DIR__.'/../bootstrap/start.php';
与:
$app = require_once __DIR__.'/../../yourlaravel4_base/bootstrap/start.php';
上传更改。现在,您应该能够将 Laravel 4 安装在您网站的子文件夹中,而不会实际暴露 app/ 文件夹和其他敏感文件。 :)