我正在设置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]
答案 0 :(得分:1)
好的,这就是它。
我的DOCUMENT_ROOT设置为/ var / www,而我的应用程序用完了/ var / www / app1,其中设置了所有内容。由于行RewriteBase /
,它被重定向到DOCUMENT_ROOT而不是APPLICATION_ROOT。我通过将该行更改为:
RewriteBase /app1
现在一切都很完美。