Laravel 显示目录文件而不是重定向到 public/index.php

Cat*_*n T 2 .htaccess laravel centos7

我对 Laravel 有点陌生,我正在尝试做下一件事:

我有一台运行 Apache 和 PHP 的 Centos 7,上面运行着不同的 Web 应用程序。

我将所有应用程序都放在/var/www/html文件夹下并将index.php它们全部链接起来。现在我安装了作曲家 Laravel 并在/var/www/html/play/play1.

问题是,当我尝试访问时,https://example.com/play/play1我应该获得 Laravel 索引页(下面的那个public/index.php)正确吗?

相反,我得到了一个包含所有 Laravel 项目文件的目录。如果我访问,https://example.com/play/play1/public我可以看到索引页。

我已经对其进行了搜索,并检查了AllowOverwrite所有内容是否都存在,是否mod_rewrite已打开。public 文件夹里面有一个.htaccess文件。

处理过此类问题的任何人都可以帮助我吗?

Opt*_*ion 8

在项目文件夹的根目录(您可以在其中看到应用程序/资源文件夹等)创建一个 .htaccess 文件并粘贴以下内容:

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

        RewriteEngine on
        RewriteCond %{REQUEST_URI} !^public
        RewriteRule ^(.*)$ public/$1 [L]

        # Redirect Trailing Slashes If Not A Folder...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} (.+)/$
        RewriteRule ^ %1 [L,R=301]

        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]

        # Handle Authorization Header
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>
Run Code Online (Sandbox Code Playgroud)