使用phpBB的Zend Framework:URL问题

时间:2009-11-02 10:17:34

标签: php zend-framework url phpbb

我在Ubuntu上使用带有Apache服务器的zend框架。当我在localhost上尝试我的网站时,我使用以下网址

例如:

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

其中'authentication'指的是AuthenticationController,'login'指的是loginAction。 'student'指的是StudentController,'profile'指的是profileAction。

问题:现在我想在我的网站上使用phpBB论坛。我不得不使用以下URL在我的网站上启动phpBB论坛。

http://localhost/test/forum/

'test'是我的主项目(网站)目录。我想在phpBB论坛中使用以下URL。

http://test.dev/forum/

如何配置我的项目使用上面的URL打开phpBB论坛?我应该创建一个控制器吗?

由于

3 个答案:

答案 0 :(得分:2)

我猜你在你的ZF应用程序中使用了apache mod_rewrite。

最简单的解决方案是在论坛/目录中放置一个新的.htaccess文件并关闭重写引擎

RewriteEngine Off 

这是因为Apache首先在请求的目录中查找.htaccess文件,如果找不到,则查找parent文件夹,依此类推,直到它到达公共目录。当你请求/ forum /他在那里找到.htaccess文件并关闭RewriteEngine时。

答案 1 :(得分: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。

完成上述设置后,我可以正确使用以下网址:

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

在上面的URL'authentication'中,'student'是控制器。 'login'和'profile'是动作,论坛是目录

欢迎提出意见。 感谢

答案 2 :(得分:1)

这也可行:

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

如果你将phpBB放在公共文件夹中,网络服务器将能够看到它,而这段代码的第二行将从重写中排除“真实​​文件”和“真实文件夹”,这就是你想要的{{ 1}}文件夹。显然,最后一次将所有框架流量推送到forum文件。