将 nginx frontcontroller 放在 webroot 之外

将 nginx frontcontroller 放在 webroot 之外

只是作为一个实验,我试图index.php从 nginx 中的 webroot 中删除我的并直接指向app.php,因为索引文件唯一做的事情是:

<?php

chdir(dirname(__DIR__));
include 'app.php';

我的 nginx 设置非常简单:

server {
    listen      80;
    server_name localhost;
    root        /vagrant/public;

    location / {
        try_files $uri /index.php?$query_string;
    }

    # some includes here
}

并且简单地指出网络根目录是行不通的:

server {
    listen      80;
    server_name localhost;
    root        /vagrant/public;

    location / {
        try_files $uri /../app.php?$query_string;
    }

    # some includes here
}

对我来说,搜索这个案例有点困难,因为根据使用的关键词会出现很多问题,但都与另一个问题有关。

没有真实的确实需要这个,但是有了 nginx 这样一个强大的工具,我无法想象这是不可能的。那么,是吗?

答案1

您可能只需要在 nginx 配置中设置索引段落。尝试index app.php;重新加载 nginx。

相关内容