dou47732 2016-10-27 09:23
浏览 17
已采纳

Phalcon PHP Project没有映射(显示目录视图的服务器)

I'm in the early stages of migrating a website into a Phalcon PHP framework. However I've stumbled on the first problem.

I've set the Phalcon project up all fine as specified by various tutorials. I've checked to see my server has Phalcon installed which it does and I've uploaded the project into the /www directory. However now when I browse to the URL instead of getting the nice rendered webpage, I literally just get a directory view of my server (Screenshot 1). Even when I dig into the directory of my Phalcon project it still only goes into the directory view (Screenshot 2). It is only when I browse to /phalcon-project/public that it finally recognises and renders the index from the Controllers and Views via the bootstrap index.php in the public directory (Screenshot 3).

Any ideas on why it's not mapping? Note, as you can see in my top level (/www) I have 2 directories; let's call them /phalcon-project and /other-website as I have another site running from there (no PHP frameworks on that site, just a plain boring old static site) my URL www.phalcon-project.com maps to the /www directory and my url www.other-site.com maps to /www/other-site... I don't see that this should be causing an issue, but could it possibly be that, or something else?

Screenshot 1:

Screenshot 1

Screenshot 2:

Screenshot 2

Screenshot 3:

Screenshot 3

  • 写回答

1条回答 默认 最新

  • dongshan1396 2016-10-27 12:29
    关注

    It sounds like you have not set up the virtual host correctly. You can either modify it to make the root /www/public or alternatively utilise a .htaccess file as detailed on the Phalcon website.

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

    So in your case you would have the following in a .htaccess file in your document root. (/www)

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

    Then the following .htaccess file inside the /www/public directory.

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
    </IfModule>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目
  • ¥15 利用pthon计算薄膜结构的光导纳