1

さて、私はZend 2 Frameworkを使用しており、基本的なZendMVCスタイルに従いました。しかし、site.com / blog(およびブログはサードパーティのアプリケーション)を追加したいとします。では、どうすればこれを追加できますか?/ blogを無視するようにフレームワークに指示するにはどうすればよいですか?これは.htaccessの変更だけでしょうか?(私はApacheを使用しています)

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

ありがとう!

4

3 に答える 3

4

これを試して:

<IfModule mod_rewrite.c>
 RewriteEngine On 
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
</IfModule>

これにより、/blog/ が実際のディレクトリであることが検出され、問題なくアクセスされます。次に、ブログ フォルダーに htaccess ファイルを配置して、そこに必要な書き換えを行うことができます。これにより、ブログ ディレクトリにアクセスするときにベースの htaccess が上書きされます。

于 2013-02-08T17:27:20.693 に答える
3

頭に釘を打ったと思います。ZF2 は、Web サーバーがその魔法を実行した後にのみルートを解釈します。したがって、実際には要因ではありません (また、そうすべきではありません!)。効率を高めるために、ブログの場所を Web サーバー構成で別の場所エンティティとして識別することを強くお勧めします (これにより、ZF2 の海岸に到達することはありません)。Nginx はこれを非常に優雅に行います。サンプルの設定は次のとおりです。

location ^~ /blog {
    root /var/www/example.com;
    index index.php index.html index.htm;
    try_files $uri $uri/ /blog/index.php;

    location ~ \.php {
        fastcgi_split_path_info ^(.*\.php)(.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_pass 127.0.0.1:9000;
    }
}

あらゆる種類の良いことが起こり、wordpress を ZF2 から (あらゆる点で) 切り離すことができ、パフォーマンスへの影響はありません。私はしばらく Apache を使っていませんが、同等の構造があることは確かです。側面、NGINXに行く;)

幸運を!

于 2013-01-31T03:08:56.930 に答える
0
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} !^blog.*$
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
于 2013-02-14T17:34:10.397 に答える