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

时间:2018-01-22 15:18:18

标签: laravel .htaccess centos7

我是Laravel的新手,我正在努力做下一件事:

我有一台运行Apache和PHP的Centos 7,我运行的是不同的网络应用程序。

我在/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文件。

任何处理这样问题的人能帮助我吗?

2 个答案:

答案 0 :(得分:0)

在项目文件夹的根目录(您可以看到app / resources文件夹等)中创建.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>

答案 1 :(得分:0)

Laravel的根目录不应该是公开访问的目录 - 您必须指向onSubmit() { this.authService.getUsers().subscribe(data => {console.log(JSON.stringify(data)}); } 目录(public/index.php所在的目录)。

因此,在您的服务器中,配置.htaccess应指向http://example.com/play/play1