我在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论坛?我应该创建一个控制器吗?
由于
答案 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
文件。