【问题标题】:Remove public from url hosted in sub domain in Laravel从 Laravel 子域中托管的 url 中删除公共
【发布时间】:2020-09-19 10:43:25
【问题描述】:

我在子域中托管了我的 Laravel 站点,它的 url 是这样的:

https://mymaindomain.com/subfolder/public/about-us

现在我想从 url 中删除 public, 我的 .htaccess 文件是这样的:

<IfModule mod_rewrite.c>
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}/beta [L,R=301]
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

【问题讨论】:

  • 当你转到mymaindomain.com/subfolder/about-us 时会发生什么?
  • @apokryfos:我得到 404 未找到
  • 在子域或子文件夹中?对于子域,您应该设置一个 VirtualHost,public 是该 VirtualHost 的 DocumentRoot
  • 如果它在子文件夹中我必须修改
  • 尝试将the existing Laravel .htaccess从子文件夹/公共移动到子文件夹并将RewriteRule ^ index.php [L]行更改为RewriteRule ^ public/index.php [L]

标签: laravel .htaccess laravel-5


【解决方案1】:

将您的所有文件从 /public 移动到您的根文件夹 /(主要是您的 laravel 文件夹)。

现在打开index.php文件并编辑2行,如下:

require __DIR__.'/../vendor/autoload.php';
// changed to
require __DIR__.'/vendor/autoload.php';

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

现在将此行添加到您的 .htaccess 以防止从 URL 访问 .env

<Files .env>
order allow,deny
Deny from all
</Files>

通过这种方法,您也可以在任何类型的共享主机中托管您的 laravel 应用程序。

希望对你有帮助

【讨论】:

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