Laravel从URL中删除public

时间:2015-04-04 07:01:22

标签: laravel-4

我正在开发laravel项目并将其部署在Hostgator服务器上。

一切正常,但我不想像www.xyz.com/public一样运行我的网站。我想从网址中删除/public。为此,我关注this link方法II:将公用文件夹的内容移动到根目录)。在此之后,我的主页在www.xyz.com上工作正常。但是,当我尝试访问www.xyz.com/aboutwww.xyz.com/admin时,它会返回404页面,"未找到错误"。

我是laravel的新手,有人可以建议我该如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

请按照以下步骤操作:

1.在文档根文件夹中创建文件夹myappnamebase

2.将除公用文件夹内容之外的应用程序的所有内容都放到myappnamebase文件夹

3.将所有公用文件夹内容放在public_html文件夹

然后进行以下更改:

在public_html-> index.php

而不是

 require __DIR__.'/../bootstrap/autoload.php';

添加

 require __DIR__.'/../myappnamebase/bootstrap/autoload.php';

而不是

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

添加

 $app = require_once __DIR__.'/../myappnamebase/bootstrap/start.php';

在myappnamebase-> bootstrap-> paths.php内部进行编辑,使其看起来如下所示

'app' => __DIR__.'/../myappnamebase/app',

'public' => __DIR__.'/../public',

'base' => __DIR__.'/../myappnamebase',

'storage' => __DIR__.'/../myappnamebase/app/storage',

最后不要忘记在public_html文件夹中上传.htaccess。它应该如下所示:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]