仮想ホストをサポートしていないVPSサーバーにZF2アプリケーションをインストールしたい。私はZendApplicationSkeletonに基づく単純なアプリケーションを使用しています。デフォルト.htaccess
を使用してZF2 ApacheをVPSにインストールして仮想ホストを作成する
- 私:
RewriteEngine On
# The following rule tells Apache that if the requested filename
# exists, simply serve it.
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
# The following rewrites all other queries to index.php. The
# condition ensures that if you are using Apache aliases to do
# mass virtual hosting, the base path will be prepended to
# allow proper resolution of the index.php file; it will work
# in non-aliased environments as well, providing a safe, one-size
# fits all solution.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
I'veがで見つかったすべてのソリューション
はSO私のために動作しません。彼らはZF1に合うことはなく、ZF2:私のアプリケーションは/var/www/html/testapp
という名前のフォルダ内にあります。
ブラウザにlocalhost/testapp/public
と入力するとメインページが読み込まれます。また、localhost/testapp/module
と入力するとモジュールがロードされますが、ナビゲーションは機能しません。
すなわち:メインページでは、I'veは次のようにボタンを作成しました:
<a href="/module/index">Go To Module</a>
しかし、私はそれをクリックした場合、私はNot Found
を示すlocalhost/login/index
に、正しくないmodule/index.phtml
ページに移動します。
それに感謝します。
どのホスティングサービスを使用しますか?どういうわけかあなたが提供したいフォルダをセットアップする可能性はほとんどないと私はほとんど信じられません。 – Wilt
リンク/モジュール/インデックスがアクセスされているときにlocalhost/login/indexにリダイレクトするログイン/認証チェックがあるようです。あなたのログイン/オーセンティケータを確認し、ログインが必要ない場合はリダイレクトが無効になっていることを確認してください。(012目的) – xangxiong
また、ZF2アプリケーションの場合、パブリックフォルダはWebアプリケーションのルートディレクトリにする必要があります。したがって、DocumentRootとして/ var/www/html/testapp/publicを使用するようにVHOSTを設定する必要があります。また、あなたのアプリケーションが/ var/www/htmlにあるので、デフォルトのApache設定がファイルを直接提供しようとしている可能性があります。その結果、あなたのZF2ルート定義と一致しないURLになる可能性があります。あなたのアプリケーションを/ var/www/htmlディレクトリの外に移動して、プライベートな設定やファイルにアクセスすることができないようにするのが最善の方法です。 – xangxiong