我在Zend上构建的网站存在以下问题我无法修复:我正在编辑的网站(不是由我编码)具有以下链接结构:http://www.site.tld/controller/action
但是,我想摆脱链接上的控制器名称,我无法让它工作 . 例如,当我点击"Link1"时,我想得到http://www.site.tld/Link1
我有以下文件结构
应用程序库公开试验.htaccess index.php
public 文件夹中的.htaccess具有以下内容:
RewriteEngine On RewriteCond% -s [OR] RewriteCond% -l [OR] RewriteCond% -d RewriteRule ^ . * $ - [NC,L] RewriteRule ^ . * $ index.php [ NC,L]
如果它有用,我还会观察到索引控制器中的每个动作都可以使用
$ this - > _ redirect('/ index / action');
我尝试重写.htaccess文件但是徒劳无功 . 它基本上没有指向物理索引控制器 . 请指教 .
谢谢!
2 回答
你在错误的地方寻找 . 问题不在你的
.haccess
文件中,而是's how the Zend Framework routes URL' s到正确的Controller和Action . 您的要求是覆盖Zend_Controller_Router
的默认路由 . 就像@Adrian所说,"The router is your friend here" . 我将为您提供问题的答案,但它附带一个很大的警告:以下内容将覆盖您的默认路由,并阻止您访问通过以下URL打开的控制器和模块:
example.com/name
.将其放在
/application/Bootstrap.php
文件中:注意:有一些方法可以测试是否可以调度请求并仅在发生故障时路由到此位置,但这是另一个主题 .
路由器是你的朋友,请查看Zend_Controller_Router上的文档以及如何在bootstrap中设置它 . 用几句话来指导这个设置太过分了 .
Update - Addition to your question :
不确定你现在的位置以及你的设置是如何的.772117_ . 以下是标准默认设置中路由器配置的快速概述
您可以通过多种方式设置路由的配置 .