隐藏URL中的细分,但允许代码访问隐藏的细分

时间:2012-11-10 22:33:37

标签: php codeigniter expressionengine

我正在使用Structure,并且有一个“Supernav”页面,其中包含多个子节点,这些子节点将构成网站的超级节目。我认为这是一种很好的方式,可以通过一个位置访问网站上的所有页面:结构UI。

enter image description here

如果你访问“supernav”组中的任何子页面,URL就会出现如下:

http://website.com/supernav/prospective-students

我希望能够删除这些网址的supernav段,以便它最终成为:

http://website.com/prospective-students

当您将鼠标悬停在页面上的这些链接上时,我甚至不希望supernav段显示在状态栏中。这可能吗?使用CodeIgniter,这归结为一个简单的路由规则,但我不知道这是否是EE的一个选项。

感谢我能得到的任何帮助!

2 个答案:

答案 0 :(得分:2)

这可能是事后的一点,但您是否考虑过在这种情况下使用NavEE并更换结构批发?您可以构建多个导航内容,而不必“隐藏”内容。我喜欢Structure,但你必须使用.htaccess来获得你想要的结果,以及一些routing stash / embeds。

答案 1 :(得分:0)

您也可以使用Freebie

  

控制您的网址 - 定义您希望EE忽略的细分   完全。使用'freebie'段来触发模板行为,构建   结构中的动态存档,或者只是为其构建特殊URL   分析目的。 Freebie允许你使用强大的段,   灵活的方式,没有处理严格的URL解析的麻烦   (比如Structure's)。

您只需将 supernav 添加到Freebie设置(在Freebie细分下),然后可以忽略supernav。如果您仍然需要运行supernav {segment_1}的条件限制,则可以使用{freebie_1}代替。在Devot:ee和this post中,通过它的创建者阅读附加组件文档中的更多内容。

话虽如此,如果你可以使用普通的Structure标签输出导航并让它显示supernav的所有子节点而没有supernav本身仍然在URL中,我不肯定。要解决此问题,您需要对导航进行硬编码(或使用NavEE或分类法。)

我希望有人可以验证Structure是否有标记/参数,这解决了这个问题,因为我不确定无论如何。