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

自定义根文件夹的Laravel重定向问题

纪俊良
2023-03-14

我的ISP不允许我的cpanel托管的laravel站点具有自定义根文件夹(laravel结构中的公用文件夹)。

这意味着我不能让服务器将/public\u html/public作为根目录。它必须始终是/public\u html

根据他们的指导,我设置了以下/public\u html/。htaccess规则,使Laravel公用文件夹显示为根文件夹

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain-name.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain-name.com$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

这或多或少有效,但并不完全有效。问题是,如果我在我的站点上请求一个带有结尾反斜杠的页面,那么页面url将以

www.domain-name。com/公众/联系我们

而不是我所期望的

www.domain-name。com/联系我们

我想这一定是一个问题。htaccess,但我尝试了各种排列,无法解决它。也许我错了,也许这是一些最终需要通过url检查后的Laravel重定向来修复的问题。

这让我发疯,我真的很感激任何想法!

共有1个答案

张昊穹
2023-03-14

为了安全起见,将整个应用程序放在公共html文件夹中是一个巨大的危险信号。你必须非常非常小心你在这个文件夹内的权限。像这样的事情。环境。默认情况下,git、缓存文件、私人上传等通常都是可以下载的,是的,黑客们会扫描这些内容。

如果您可以将整个应用程序上载到cpanel主机的根目录,并将public重命名为public_html(如果无法删除,则将public的内容复制到现有public_html)

然后,您可能需要修改laravel应用程序index.php,将其用作公共路径。

索引中。php下:

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

加:

// set the public path to this directory
$app->bind('path.public', function() {
    return __DIR__;
});

有了这个标准。htaccess应该在没有更改的情况下工作。

希望有帮助。

 类似资料:
  • 我无法根据用户登录获得任何自定义身份验证重定向。

  • 我使用任何类型的路由,然后在这个方法中,我在请求类型的基础上生成树。 路线 从控制器在检查类型之前我这样检查它

  • 问题内容: 我正在使用Laravel Framework 5.4.10,并且正在使用常规身份验证 提供。我想保护整个应用程序,并在登录后将用户重定向到/ themes。 我有4个控制器:ForgotPasswordController.php,LoginController.php,RegisterController.php和ResetPasswordController.php。我已经将此行编

  • 当我在web.php中定义了路由时,我在使用Laravel时遇到了一个路由未定义的错误,如下所示: 我正在从下面的代码重定向到路由 auth()代码可以工作,但当调用重定向时,我得到错误'route[home]not defined'。有没有人知道我怎么解决这个错误。任何帮助都会很好

  • 我已经建立了一个自定义的相机应用程序。面对屏幕方向的问题,我不希望在方向改变时重新创建活动。请用完整的解决方案帮助我。 在预览类中的surfaceChanged方法内获取空指针异常。 获取以下行中的空指针异常: 任何帮助将不胜感激。 以下是错误日志: 12-23 16:07:34.962 8845-8845/com。清晰摄像机E/AndroidRuntime﹕ 致命异常:主进程:com。清晰摄像头

  • 我正在编写一个基于API的LaravelAPI。网址。com,用于托管在www.myurl上的应用程序。com在不同于使用Laravel Fortify的Lravel API的服务器上。 当用户在生成的链接上验证他们的电子邮件时,问题就来了,他们不是被重定向到外部应用程序,而是被重定向到API,而是在他们的浏览器上。 文档中声明此配置在“身份验证”中。pgp中间件可以工作: SPA_URL设置为w