在共享主机上部署 Laravel 时如何摆脱 /public?

问题描述 投票:0回答:1

我有一个 Laravel 项目,我已将其作为共享主机部署在 Hostinger 上,

我的共享主机结构:


[public_html]
->
[contains all the files of laravel project also public of laravel]

[public_html]
->
[contains .htaccess beside laravel project]

enter image description here


[.htaccess beside laravel project contains this]
->

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

问题是

现在一切正常,但问题是我的域名后面有

/public

应该是

www.domain.com/
但我明白了
www.domain.com/public/

但我也可以去

www.domain.com/login
我也可以去
www.domain.com/public/login

但是我不能去

www.domain.com/

它将我重定向回

www.domain.com/public/

如何解决?请

php laravel deployment hosting web-hosting
1个回答
0
投票

美好的一天;让您的网站在没有 /public 的情况下工作

  1. 将所有代码放在 public_html 之外(将文件夹命名为任意名称)
  2. 仅将公共文件夹放入 public_html 中
  3. 编辑您的域名以面向 public_html,我认为这是当前根据您的解释设置的。
  4. 编辑公共文件夹中的index.php(例如public_html/public/index.php)
  5. 设置对 bootstrap.php 和 autoload.php 的引用以引用 public_hmtl 之外的代码文件夹

下面给出了一个示例,将 (project_dir) 更改为您创建的与 public _html 相同级别的目录

需要 DIR.'/../(project_dir)/vendor/autoload.php'; // 可能是第 34 行

$app = require_once DIR.'/../(project_dir)/bootstrap/app.php'; //可能是第47行

您可能还需要将公用文件夹的权限设置为775,但这不是必需的

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.