【问题标题】:Allow php files to be accessed in laravel public folder允许访问 laravel 公共文件夹中的 php 文件
【发布时间】:2019-12-19 15:36:41
【问题描述】:

我有一个使用 Roxy Fileman 作为文件管理器的 Laravel 项目。我把Roxy Fileman的文件放在public文件夹下

/public/fileman

所以我可以通过

<ifarame src="my.domain/fileman/index.html"></iframe>

iframe 将从位于插件文件夹中的 PHP 文件加载数据

/public/fileman/php

它在我的本地 XAMPP 服务器上运行良好,但在我的 linux 服务器上显示 E_LoadingAjax php/dirtree.php,当我尝试直接访问这些文件时返回 404

我认为这是因为出于安全原因,PHP 文件被禁止直接访问。 那么我怎样才能允许访问这个特定的文件夹呢?或者在 laravel 中使用 Roxy Fileman 的更好方法是什么?

.htaccess 自带 Laravel:

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

    RewriteEngine On

    # 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 laravel roxy-fileman


    【解决方案1】:

    打开 composer.json 并找到带有 autoload 的部分,并添加 files 数组,参见下面的示例(我创建了文件夹 folder在包含文件tst.php的public文件夹内)所以我有public/folder/tst.php

    现在当我访问1.1.1.1/folder/tst.php 时,PHP 会解释我的代码。

    .
    .
    .
    
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
        },
        "files": [
                "public/folder/"
        ]
    },
    .
    .
    .
    

    【讨论】:

    • 这对我不起作用,它允许我直接访问文件夹,但仍然给 404 给 php 文件。如果我执行 composer install 也会出错
    • 作曲家转储-自动加载-o
    • 在此之后您还必须创建一个 Procfile 并添加这些行 web: vendor/bin/heroku-php-apache2 public/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    相关资源
    最近更新 更多