从 Laravel 部署的项目中删除 index.php [重复]

Posted

技术标签:

【中文标题】从 Laravel 部署的项目中删除 index.php [重复]【英文标题】:Remove index.php from a Laravel deployed project [duplicate] 【发布时间】:2020-05-10 22:37:26 【问题描述】:

我目前正在使用 Laravel 6,我正在尝试在 Apache/2.4.29 (Ubuntu) Server 中部署我的项目。我的欢迎页面可以正常工作,但是当我尝试登录时,它会显示以下消息:

在此服务器上找不到请求的 URL。

但是当我尝试使用 index.php/login 登录时,我可以登录并且路由工作正常,但没有 CSS,我的 .htacces 文件如下所示:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On
    RewriteBase /var/www/apps/hris/imiforms

    # Redirect trailing slashes if not a folder...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^ index.php [L]
</IfModule>

我在 Apache 中的 .conf 文件如下所示:

<Directory /var/www/apps/hris/imiforms/public>
    AllowOverride All
    Require all granted
    Require all granted
</Directory>

我已经在 Apache 中启用了我的重写模式。我该如何解决这个问题?

【问题讨论】:

您是否将 Apache 配置的服务器目录设置为您的 Laravel 公用文件夹? 是的,我确实在另一个论坛上找到了答案,谢谢 【参考方案1】:

编辑 .htaccess 文件,使其包含以下代码:

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

来源:How to Remove “public/index.php” from URL in Laravel

【讨论】:

以上是关于从 Laravel 部署的项目中删除 index.php [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 laravel 5 中的 url 中删除 public/index.php?

从 Laravel 4 URL 中删除 index.php 并将 www 重写为非 www

将 laravel 项目部署到 Cpanel 时如何解决错误 404?

从 URL Laravel 5.3 中删除公共

在阿里云虚拟主机上部署Laravel

如何删除服务器上的“public/index.php”?