PHP / Zend重写机制

时间:2009-05-28 19:00:42

标签: php zend-framework url-rewriting

嘿那里,这是一个新手Zend的问题。在网站位置:“ mydomain.org/subA/subB ”,如果我们在没有登录(或有会话)的情况下访问此位置,则i)重定向到登录页面。否则,它ii)重定向到竞赛登记表。现在,我认为Apache重写规则可以做到这一点,但是没有配置表明在我们的项目.htaccess文件中:

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

我知道可以做这种重写的唯一机制是i)Apache的mod_rewrite或ii)通过Zend的控制器或路由器组件重写。还有什么我可以错过的吗?就像我说我是一个PHP / Zend新手一样,所以有一些东西可以跟踪该请求以查看它通过的系统。

由于

1 个答案:

答案 0 :(得分:-1)

我会使用Zend的内置路由库:

http://framework.zend.com/manual/en/zend.controller.router.html

Zend的路由器允许您从应用程序中创建重写路由,而无需编写自定义mod_rewrite规则。您从.htaccess文件粘贴的重写规则是Zend完成其工作所需的。

编辑:我更仔细地阅读了你的问题。我想你明白Zend有路线。如果您正在查找重定向工作的原因,请尝试检查控制器以查找需要进行身份验证的页面。如果在控制器中定义了preDispatch(),则可能正在检查会话身份验证,并在缺少控制器时重定向到其他控制器。