2011-07-04 8 views
2

の問題私はZendのアプリケーションを起動していると私はこのようなサブフォルダに置く必要があります。publicサブフォルダにZend Frameworkの実行 - デフォルトコントローラ

  • /サブフォルダ
    • アプリケーション
    • ...

私は次のようでした:

  1. 私のapplication.iniにベースURLを設定:としてのhtaccessを変更しながら、私は、直接/サブフォルダへのパブリックフォルダからの.htaccessを移動
resources.frontController.baseUrl = "/subfolder" 
  1. を次のとおりです。
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ public/index.php [NC,L] 

それはすべて私がやったことです。そして、すべてが期待通りに機能します。私はアクションのビューとコントローラのブログを追加することができますし、呼び出すことによってそれにアクセスすることができます

/サブフォルダ/ブログ/ビュー右あまりに

URLビューヘルパーとスタッフの仕事。唯一動作しないのはデフォルトコントローラです。だから私は、入力したとき:

/subolder/

が、私は403を取得する(禁止さ)。私は

/サブフォルダ/インデックス

を入力した場合...それは動作します。私は何が欠けているのですか?

ありがとうございます! teebee

+0

なぜあなたから離れてあなたの.htaccessを移動するだけで、次の行に「/サブフォルダ」ディレクトリに.htaccessファイルを作成し、あなたのZFパブリックフォルダ内の任意の変更を加える必要はありません。パブリックフォルダ?それはあらゆる種類の問題を引き起こすと私は思う。 –

+0

それ以外はどうすればサブフォルダを使用できますか?より良いアプローチは? – teebee

+0

Webフォルダ構造とロケールファイル構造を混同する必要はありません。あなたのZendアプリケーションは、Webサーバー上でどこにでも生きていても構いません。あなたのindex.phpはそれを見つける必要があります。あなたの公開(ウェブ)フォルダには、そのindex.phpとCSS、画像などのWebブラウザからアクセスする必要があるものだけを保持する必要があります。あなたのhtaccess/subfolderによると、index.phpはトリガーされず、403エラーも発生します。 –

答えて

0

あなたは

# Rewrite rules 
RewriteEngine on 
RewriteRule (.*) ./public/$1 
+0

あなたは上記のセキュリティ上の懸念を共有していますか?すべてがpublic/index.phpにリダイレクトされるので、私はそれに何か間違っているとは思わない? – teebee

+0

@teebee今後のアプリケーションによって異なります。変更が必要な場合があります。ほとんどの基準とベストプラクティスは、人々を悩ませるのではなく、他の人々が問題について学んだからです。ほとんどの場合、難しい方法です。 –

0

Replace RewriteRule^$ public/index.php [NC、L] と RewriteRule ^。 $ http://addressto/index.php [R = 302、NC] または のRewriteRule ^。* $の/public/index.php [NC、L]

公的にアクセス可能なフォルダにpublic以外のZFのフォルダを置く場合、私はわからないんだけどさあなたのサイトにセキュリティ上の欠陥があります。 ZFのパブリックフォルダの内容をサーバーのパブリックフォルダに入れ、他のフォルダを非公開アクセス可能なフォルダに配置する必要があります.ZFアプリケーションのインスタンスをさらに必要とする場合は、Zendモジュールシステムを使用してください。オンラインでzendを参照してください詳細については、ドキュメントを参照してください。

関連する問題