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 maps to the /www directory and my url 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 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.

    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]

    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]
    点赞 评论 复制链接分享