Phalcon PHP 项目未映射(服务器显示目录视图)

Phalcon PHP Project not mapping (server showing directory view)

我正处于将网站迁移到 Phalcon PHP 框架的早期阶段。但是我偶然发现了第一个问题。

我已经按照各种教程的说明正确设置了 Phalcon 项目。我检查过我的服务器是否安装了 Phalcon,我已经将项目上传到 /www 目录中。然而,现在当我浏览到 URL 而不是获得漂亮的呈现网页时,我实际上只是获得了我的服务器的目录视图(屏幕截图 1)。即使当我深入我的 Phalcon 项目的目录时,它仍然只会进入目录视图(屏幕截图 2)。只有当我浏览到 /phalcon-project/public 时,它才最终通过 public 目录中的 bootstrap index.php 识别并呈现来自控制器和视图的索引(屏幕截图 3)。

关于它为什么不映射的任何想法?请注意,正如您在我的顶级 (/www) 中看到的那样,我有 2 个目录;我们称它们为 /phalcon-project 和 /other-website,因为我从那里有另一个站点 运行(该站点上没有 PHP 框架,只是一个无聊的旧静态站点)我的 URL www.phalcon-project.com 映射到 /www 目录,我的 url www.other-site.com 映射到 /www/other-site... 我没看到这应该会导致问题,但它可能是那个问题,还是其他问题?

截图一:

截图二:

截图三:

听起来你没有正确设置虚拟主机。 您可以修改它以创建根目录 /www/public 或使用 .htaccess 文件,详见 Phalcon 网站。

https://docs.phalconphp.com/uk/latest/reference/apache.html

因此,在您的情况下,您的文档根目录中的 .htaccess 文件中将包含以下内容。 (/www)

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule  ^$ public/    [L]
  RewriteRule  ((?s).*) public/ [L]
</IfModule>

然后是 /www/public 目录中的以下 .htaccess 文件。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^((?s).*)$ index.php?_url=/ [QSA,L]
</IfModule>