0

目標は、静的 Web サイトと同じドメインに Zend アプリケーションを効率的にセットアップすることです。現在、以下は true ですが遅いです:

  • www.website.com/ は www.website.com/corp/index.html にリダイレクトされます
  • /admin、/login、/session は zend アプリケーションが存在する /index.php に解決されます

ブートストラップ ファイルで www.website.com/corp/index.html へのリダイレクトを設定しましたが、どのページにアクセスしても、必要に応じてこのリダイレクトが発生する必要があります。静的サイト全体の速度が低下しています。これは、すべてを /index.php にリダイレクトする仮想ホストの httpd.conf エントリですが、そのディレクトリに移動したら、リダイレクトなしで /corp にアクセスできる例外を配置したいと考えています。他のシンプルで効果的なソリューションももちろん歓迎されます。

<VirtualHost *:18887>
   DocumentRoot c:\pathtoapp\public
   ServerName website.com

    SetEnv APPLICATION_ENV "local"
     <Directory c:\pathtoapp\public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
4

1 に答える 1

1

Zend Framework の.htaccessファイルを変更して、フロント コントローラーへのリクエストの送信をバイパスするようにする/corp/*と、この問題を回避できるはずです。

.htaccesspublic ディレクトリのファイルを次のように変更してみてください。

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

最初の RewriteCond は、リクエスト ファイル名が一致するかどうかを確認し、一致/corp/*する場合は、フロント コントローラーをバイパスし、Apache を介して直接リクエストを提供します。Zend アプリケーションはこれらのリクエストを処理する必要はありません。

于 2012-05-13T19:22:57.677 に答える