1

UbuntuのApacheサーバーでzendフレームワークを使用しています。ローカルホストでサイトを試すときは、次の URL を使用します

例えば:

http://test.dev/authentication/login
http://test.dev/student/profile

「authentication」は AuthenticationController を指し、「login」は loginAction を指します。「student」は StudentController を指し、「profile」は profileAction を指します。

質問: 自分のサイトで phpBB フォーラムを使用したいと考えています。私のウェブサイトで phpBB フォーラムを開始するには、次の URL を使用する必要がありました。

http://localhost/test/forum/

「test」は私のメインプロジェクト(ウェブサイト)ディレクトリです。phpBB フォーラムの次の URL を使用したいと考えています。

http://test.dev/forum/

上記の URL を使用して phpBB フォーラムを開くようにプロジェクトを構成するにはどうすればよいですか? コントローラーを作成する必要がありますか?

ありがとう

4

3 に答える 3

2

ZFアプリケーションでapachemod_rewriteを使用していると思います。

最も簡単な解決策は、forum /ディレクトリ内に新しい.htaccessファイルを配置し、書き換えエンジンをオフにすることです。

RewriteEngine Off 

これが機能するのは、Apacheが最初に要求されたディレクトリで.htaccessファイルを検索し、見つからない場合は、パブリックディレクトリに到達するまでparentsフォルダなどを検索するためです。/ forum /をリクエストすると、彼はそこで.htaccessファイルを見つけ、RewriteEngineをオフにします。

于 2009-11-02T10:43:20.583 に答える
1

しばらくして、私は自分の答えを見つけました。'forum'フォルダーを'public'フォルダーに配置したところ、.htaccessファイルを変更しなくても機能しています。

これが私の設定です:

私のディレクトリ構造は次のようになりました。

/var/www/test/public/index.php
/var/www/test/public/.htaccess
/var/www/test/public/forum

私のhttpd.confエントリは次のようになります。

<VirtualHost 127.0.0.1>
    ServerName test.dev
    DocumentRoot 'C:\wamp\www\test\public'
</VirtualHost>

私の.htaccessファイルは次のようなものです(フォルダーとコントローラー/アクションURLの両方を制御します):

SetEnv APPLICATION_ENV development

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

上記の.htaccessファイルの最後の行では、URLにindex.phpを指定せずにURLを使用できます。

上記の設定の後、次のURLを正しく使用できるようになります。

http://test.dev/authentication/login
http://test.dev/student/profile
http://test.dev/forum/

上記のURLでは、「認証」と「学生」がコントローラーです。「ログイン」と「プロファイル」はアクションであり、フォーラムはディレクトリです

コメントは大歓迎です。ありがとう

于 2009-11-12T19:23:02.673 に答える
1

これも同様に機能します:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css)$ /index.php

phpBB を public フォルダーに配置すると、Web サーバーはそれを認識できるようになり、このコードの 2 番目の 2 行は、フォルダーに必要な書き換えから「実際のファイル」と「実際のフォルダー」を除外しforumます。明らかに前回は、すべてのフレームワーク トラフィックをindex.phpファイルにプッシュしました。

于 2010-01-02T13:38:08.567 に答える