0

共有ホスト上で実行される単純なZendWebappを作成しようとしています。FTPサーバーにログオンした後のルートフォルダは、「www」という名前のフォルダです。したがって、構造は次のとおりです。

/www
   /tasklist
        /application
        /library
        /public
        /.htaccess

ホスティングプロバイダーは、.htacccessファイル内のすべてのパスを絶対にする必要があります。これを考慮すると、Zendアプリのメインindex.phpへのパスは次のとおりです。

http://aportsupport.cz/tasklist/public/index.php

これは、アプリにアクセスできるリンクでもありますが、特定のファイル(css、jsなど)への他のパスでは機能しません。次のコマンドでアプリにアクセスしようとすると、次のようになります。

http://aportsupport.cz/tasklist/

すでに試した.htaccessのさまざまな設定に応じて、404または403エラーのみが発生します。エラーログにもサーバー構成にもアクセスできません。デフォルトのコントローラーは「インデックス」、アクション「インデックス」、モジュール「デフォルト」です。

4

2 に答える 2

0

Zendアプリケーションでは、.htaccessはパブリックフォルダーにある必要があるため、フォルダーツリーは次のようになります。

/www
    /tasklist
        /application
        /library
        /public
            /.htaccess

.htaccessは、ほとんどのZendアプリケーションでシンプルに保つことができます。このテキストを.htaccessで試してみてください。

Options +FollowSymlinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteBase /
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

これが分解すると、このルートディレクトリからどのURLが要求されても、Zendアプリケーションをブートストラップするファイル/www/tasklist/public/index.phpをフェッチしようとします。

ホスティングプロバイダーがZendFrameworkをサポートしていない場合は、まったく機能しない可能性があることに注意してください。http://www.phpcloud.com/のようなホスティングプロバイダーはZendベースのアプリケーションを許可しますが、コンテナーの作成時に指定する必要があります。

于 2013-03-12T18:10:24.180 に答える
0

ご回答ありがとうございます。同様の問題を抱えている可能性のあるすべての人にとって、この解決策は私にとってはうまくいきました:

共有ホストに独自のルート フォルダーを持つサブドメイン 'tasklist.aportsupport.cz' を作成しました。このフォルダーに、すべての Zend フォルダーをデフォルトの構造で配置します。また、これを書いた index.php ファイルを作成しました。

<?php include 'public/index.php';

この index.php は、次の行を追加したデフォルトの Zend Framewrok .htaccess を含む tasklist.aportsupport.cz のルートにあります。

RewriteBase /

また、すべての CSS、JS、imgs などのファイルは、そのルート フォルダーにあります。すべてがうまく機能します!

于 2013-03-15T22:21:09.127 に答える