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



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

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

/var/www/html文件夹中的所有应用程序

index.php链接了所有应用程序。现在我安装了作曲家Laravel,并在/var/www/html/play/play1中添加了一个新的Laravel项目。

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

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

我已经搜索了一遍,并检查了AllowOverwrite是否全部存在,是否mod_rewrite打开。在公用文件夹中有一个.htaccess文件。

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

在项目文件夹的根目录(您在其中看到应用程序/资源文件夹等(创建一个 .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>

Laravel 的根目录不应该是公开访问的目录 - 您必须指向public/目录(index.php.htaccess所在的目录(。

因此,在您的服务器配置中,http://example.com/play/play1应该指向var/www/html/play/play1/public

最新更新