2016-10-27 4 views
0

WebサイトをPhalcon PHPフレームワークに移行する初期段階にあります。しかし、私は最初の問題に遭遇しました。Phalcon PHPプロジェクトがマッピングされていない(ディレクトリビューを表示するサーバ)

私はPhalconプロジェクトをさまざまなチュートリアルで指定されているように細かく設定しました。私は自分のサーバにPhalconがインストールされていることを確認しました。私はこのプロジェクトを/ wwwディレクトリにアップロードしました。しかし、レンダリングされたWebページを表示するのではなく、URLを参照すると、文字通り私のサーバーのディレクトリビューが表示されます(スクリーンショット1)。 Phalconプロジェクトのディレクトリを掘り下げても、ディレクトリビュー(スクリーンショット2)にしか入りません。/phalcon-project/publicを参照すると、パブリックディレクトリ(スクリーンショット3)のブートストラップindex.phpを介してコントローラとビューからインデックスが認識され、レンダリングされます。

なぜマッピングされていないのですか?注:私のトップレベル(/ www)には2つのディレクトリがあります。/phalcon-projectと/ other-websiteと呼ぶことにしましょう。そこから別のサイトを実行しています(そのサイトにはPHPフレームワークがなく、ちょっと退屈な古い静的サイトです)。私のURL www.phalcon-project.comは/ wwwにマップされていますディレクトリと私のURL www.other-site.comは/ www/other-siteにマップされています...これは問題を引き起こすはずですが、それはおそらくそれか他のものかもしれませんか?

スクリーンショット1:

Screenshot 1

スクリーンショット2:

Screenshot 2

スクリーンショット3:

Screenshot 3

+0

仮想ホストの外観は? – kosta

+0

@kosta GNU Linux共有サーバー。 mod_rewriteが有効です。 – Jakob

答えて

1

仮想ホストを正しく設定していないようです。 root/www/publicにするか、代わりにPhalconウェブサイトで詳しく説明している.htaccessファイルを使用するように修正することができます。

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

だからあなたの場合には、あなたのドキュメントルートに.htaccessファイルに次のを持っているでしょう。 (/ www)

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

次に、/ www/publicディレクトリ内の次の.htaccessファイル。

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

ありがとう!最初の.htaccessファイルを少し修正しなければなりませんでした。これは、メインディレクトリが公開前にリストされていないためです(/ www/public/www/phalcon-project/publicだから、ディレクトリ)。 – Jakob

関連する問題