Laravel在多项目设置中从url中删除public

时间:2017-04-06 09:13:17

标签: laravel laravel-5

我有一台服务器,我打算用它来托管多个项目。到目前为止,结构就像这样

public_html
- project1
- project2

单个项目文件夹内部是Laravel安装。我现在访问项目的方式是http://www.website.com/project1/public

如何从我的网址中删除该公开链接?我试图在project1的根目录中设置一个htaccess文件,但它似乎不起作用。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

为此,您需要重新确定如何将文件放在服务器上。

首先,您需要具备以下内容

project1
project2
public_html
    -project1
    -project2

您将在根项目文件中安装所有应用程序文件。但是不要将您的公共文件夹放在这里,例如。

project1
 -app
 -bootstrap
 -(rest of folders)
project2
    -app
    -bootstrap
    -(rest of folders)
public_html
    -project1
    -project2

对于每个项目,将所有内容放在各自的公用文件夹中,并将它们放在project1和project2文件夹中,然后删除公用文件夹。您基本上将重新映射public_html->project1public_html->project2文件夹作为您的公用文件夹

您现在需要通过更改server.php文件来告诉laravel公共文件夹的位置

更改project1 / server.php
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
    return false;
}

require_once __DIR__.'/public/index.php';

if ($uri !== '/' && file_exists(__DIR__.'/public_html/project1'.$uri)) {
    return false;
}

require_once __DIR__.'/../public_html/project1/index.php';

project2执行相同操作,但使用project2名称代替project1

您现在应该发现,如果您访问www.example.com/project1,它应该转到正确的项目

答案 1 :(得分:0)

我在这个网站http://tutsnare.com/remove-public-from-url-laravel/尝试了这种方法,它似乎对我有用。希望这有助于其他人。