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

在共享主机上的目录文件夹中运行laravel项目

令狐建修
2023-03-14

我的问题是:如何在共享网络主机的目录(而不是根目录)中运行laravel应用程序?

对于我的一些客户,我在他们选择的共享虚拟主机的根文件夹中运行Laravel应用程序,并从URL中删除 /public部分。为了完成这项工作,我将index.php移动到根文件夹,并将信息从index.php更改为:

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

现在我知道这可能会导致安全问题,但我已经找到了解决方案,共享网络主机的情况下。

我用来进行此更改的. htaccess是:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

RewriteCond %{REQUEST_URI} !(\.eot|\.woff|\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1/$2 [L,NC]

但在本例中,我希望laravel项目在名为test的目录中运行。

文件夹结构:

root (public_html)
  |-- test (directory with laravel project)

现在我不确定是否可以简单地更改. htaccess,因为我对. htaccess文件不太熟悉。我要做什么改变,才能让这个工作?

请注意我的URL:

// this link will be changed to:
    www.[text-placeholder].com/test/public/css/style.css 

// Output above result now:
    www.[text-placeholder].com/public/css/style.css

// But should be:
    www.[text-placeholder].com/test/public/css/style.css 

共有1个答案

锺离逸春
2023-03-14

很简单,只需将项目1级别置于public_html文件夹之上,并将public文件夹本身重命名为public_html即可。

另外,这可能是一个更好的方法,而不是使用。htaccess,因为现在你确实知道了,公共html之外的文件不在你的webroot中(黑客无法访问),使用htaccess你可能会犯错误,文件会被暴露。

 类似资料:
  • 我面临的问题,而上传我laravel项目到共享服务器,微软天蓝色。我不能访问除/以外的路线。我的路由文件有以下代码: 基本上,我使用php artisan make:auth生成登录注册默认功能。 我可以访问我的 /route: http://40.121.138.22/monrostudio/public/ 但不能访问其他路由,如/login、/register或我创建的任何其他路由。

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

  • 我有一个上传文件的功能。在本地主机上,它没有错误。但在我部署到共享主机上之后,它就出现了一个问题。如果是localhost,我不会移动一些文件夹,但在“教程”共享主机上,我需要创建两个文件夹。拉威尔和公众。此Laravel文件夹是项目Laravel上的所有文件,没有公用文件夹 这是我共享主机上的模式 (/home/sippaur) 等 Laravel- > 应用程序 独自创立 配置 数据库 pub

  • 我将我的网站从本地主机移动到共享主机这一切都很好,但当我将存储的文件直接上传到public\u html时,我需要:类似于public\u html/storage/我尝试使用类似以下内容: 问题仍然存在。 我的控制器: 我的文件夹: 首页/abdoweb/{bmcelaravel} 核心laravel: 首页/{bmce} 非常感谢。

  • 我有个问题。My laravel在共享主机上看不到图像。 我有公共文件夹在~/域/DOMAIN/public_html/APP和其余的文件在~/域/DOMAIN/文件。 我的文件正在上载到~/domains/DOMAIN/files/storage/app/public/uploads/avatars 但在应用程序中,我看不到这一点。 这是上传代码: 你能帮我做什么吗?

  • 我在共享主机上部署了一个Laravel 5.5应用程序,但在上传/查看图像时遇到问题。 localhost一切正常,但是当我上传到网上时,我无法访问存储图像的目录。 这里是存储我的图像的地方 它将图像存储在: public_html/nbd/公共/项目/307/my-image.png 这里还有我的图像设置: 我的应用程序位于 public_html/nbd/系统 ...因为我必须将公用文件夹从系