Zend和modrewrite不能正常协同工作

时间:2010-08-24 14:38:24

标签: zend-framework .htaccess mod-rewrite

我正在设置Zend应用程序,并完成了在我的开发工作站上设置modrewrite的基本步骤,并编写了一个.htaccess文件(如下所示)。现在,当我转到项目的根目录时,Zend正常工作,调用控制器并显示相应的页面。

但是,当我调用任何控制器时,我希望它会重定向到相同的index.php文件,而该文件又将其引导到相应的控制器和动作(例如myurl / controller / action将由myurl读取/ index.php然后将适当地重定向到该动作。)

我怀疑这个问题与我如何设置我的.htaccess文件有某种关系,因为调用基本URL确实可以正常工作。但我无法弄清楚出了什么问题。有没有人有建议?

Options +FollowSymLinks  
RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)/(.*)$ index.php [NC,L]
RewriteRule ^(.*)/(.*)/(.*)$ index.php [NC,L]
RewriteRule ^(.*)/(.*)/(.*)/(.*)$ index.php [NC,L]
RewriteRule ^.*$ index.php [NC,L]

1 个答案:

答案 0 :(得分:1)

好的,这就是它。

我的DOCUMENT_ROOT设置为/ var / www,而我的应用程序用完了/ var / www / app1,其中设置了所有内容。由于行RewriteBase /,它被重定向到DOCUMENT_ROOT而不是APPLICATION_ROOT。我通过将该行更改为:

来修复它
RewriteBase /app1

现在一切都很完美。