当前位置: 首页 > 知识库问答 >
问题:

如何在Laravel中将公用文件夹设为根目录?

鄢松
2023-03-14

我使用Laravel框架。如您所知,其目录如下所示:

打开我的网站主页(Route::get('/'),'HomeController@index“);)我需要打开目录的/public文件夹。换句话说,要查看我网站的第一页,请访问以下URL:

http://example.com/public

无论如何,只有我的域名(http://example.com/)不是我的根目录。如何将/public文件夹设为根目录?

现在我找到了一个变通办法。我可以在根上创建一个index.php,并将代码重定向到/Public文件夹。因此,当用户输入http://example.com/时,它将被自动重定向到http://example.com/public。但这仍然很丑陋。我不喜欢在URL中看到/Public。有什么建议吗?

共有3个答案

淳于俊迈
2023-03-14

步骤1:将/public/index.php和/public/htaccess文件作为/index.php和/htaccess放在根目录中
步骤2:现在在index.php中进行更改

require __DIR__.'/../bootstrap/autoload.php'; //OLD code
$app = require_once __DIR__.'/../bootstrap/app.php';

 require __DIR__.'./bootstrap/autoload.php'; //NEW code
 $app = require_once __DIR__.'./bootstrap/app.php';
孙岳
2023-03-14

不要复制任何Laravel文件。使用web服务器(Apache或Nginx)将Laravel项目指向public目录。

对于Apache,您可以使用以下指令:

DocumentRoot "/path_to_laravel_project/public"
<Directory "/path_to_laravel_project/public">

对于nginx,您应该更改此行:

root /path_to_laravel_project/public;
狄望
2023-03-14

有很多方法可以做到这一点。

您只需要从公共目录中剪切index.php和.htaccess并将其粘贴到根目录中,就这样,并将index.php中的两行替换为

require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';

最好的方法是.htaccess。在Laravel安装的根目录中创建.htaccess文件。下面的代码适用于此。

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

你可以从这里读:方法

 类似资料:
  • 问题内容: 我使用的共享主机使用cPanel作为其控制面板,并且cPanel中是默认的根目录,因此,我无法正常运行Laravel应用程序。 有什么方法可以使Laravel 代替公用文件夹? 问题答案: 通过简单的搜索就很容易找到它。 在您的index.php中添加以下3行。 编辑: 正如Burak Erdem提到的,另一个选择(也是更可取的)是将其放入 方法中。

  • 我有一个像这样的文件夹 应用程序 供应商 引导程序 公开的 文件夹 img 当我从url访问时http://example.com/img/img.png它工作,但当我喜欢访问http://example.com/img/我得到禁止403,我需要的是重定向或显示该页面没有找到我的。htaccess看起来像这样。 选项-多视图选项-索引重写引擎打开

  • 我使用Codeigniter与Hostgator共享托管。 如何在public_html 403中设置子目录/文件夹?但此文件夹中的文件是可访问的。 例子: /public_html/this_forlder_forbidden/this-file-not-forbidden.ext 例1 /public_html/js/jquery。js /public_html/css/style.css 下

  • 我的共享主机帐户上有第二个域 我的laravel项目位于根目录中 laravel公用文件夹位于public_html下。public\u html/public 注意:我不希望公共文件直接位于public_html下,因为我还有其他文件会被覆盖。 我已经将这些更改为索引中的行。php文件。 需要目录。“//肌醇结构域。com/供应商/自动加载。php′; require_onceDIR/.../.

  • 我正在网上浏览所有可能的样本来解决这个问题。这仍然是一个头痛。 我只是想避免中的公共,并使其像根目录的。 现在我不想回避安全问题,所以我学习了将是最好的方式。 朋友们,有什么解决办法吗?

  • 我试图在根目录外的文件夹中保存一个文件,然后读取它的内容。 例如,我的工作目录是/var/www/html/project_folder,我想将文件保存在/var/www/new_folder中 我使用的是Laravel5.2,所以我的根路径是/var/www/html/project\u folder/public 我已授予新文件夹的所有权限。我尝试了$\u SERVER['DOCUMENT\u