【问题标题】:Laravel4 remove public from URLLaravel 从 URL 中删除公共
【发布时间】:2015-06-09 05:20:52
【问题描述】:

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

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

我是laravel 的新手,谁能建议我应该怎么做才能解决这个问题。

【问题讨论】:

  • 将文档根目录设置为 /public(生产模式)。公共文件夹存在是有原因的!不要授予对根文件夹的访问权限!

标签: laravel-4


【解决方案1】:

只需按照以下步骤操作:

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]

【讨论】:

    猜你喜欢
    • 2017-02-27
    • 2016-06-09
    • 2019-03-30
    • 2013-03-13
    • 2015-04-06
    • 2021-08-08
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多