2013-11-28 34 views
0

我试图让索引页面遵守.htaccess中定义的重写规则(或者用我的路由文件中定义的默认路由来重写index.php中的路径: rewrite.php)。PHP,MVC:重写索引规则页面

为什么,你可能会问?我在PHP中创建了一种MVC项目(我说'有点',因为我不使用像Zend这样的框架,我只是将MVC想法实现为纯php)。所以,而不是页面我有意见。我的项目中没有index.php文件(也没有index.html ...实际上没有任何索引文件)。我在.htaccess文件的帮助下重写了所有的url路径,然后我使用控制器进一步操纵模型或在视图中显示。 为什么不使用index.php页面,你可能会问?就像我说的,我使用控制器来做东西。通过使用索引页,我无法通过控制器操作模型和视图,因为物理页面具有优先级,并且URL重写规则会被忽略。所以,如果有人转到根页面(http://www.domain.com/),服务器将自动显示索引页面,并且我不想复制第一页的逻辑(获取和显示数据),仅用于使用索引页。

也许这是愚蠢的,但我试图改变默认目录页面(DirectoryIndex在.htaccess中)为空(没有工作,如我所料)。 :)

这就是说,我已经排除了索引页面。它运行良好,它显示了它应该做的数据,但仔细看,我发现浏览器实际上在根页面上收到“403 Forbidden”。

在ASP.NET MVC中,Default.aspx的存在也是强制性的(出于同样的原因,我认为)。但是在默认页面中,http上下文路径使用Global.asax中定义的默认路由来重写。问题是我该如何在PHP中做到这一点? (或任何其他建议是欢迎的)

你可以看到我在这里讨论的网页:www.clubclio.eu(你可以看到,数据很好的显示,但你收到403禁止)。

回答

1

我解决了这个通过重命名文件rewrite.php(在.htaccess中定义的路由文件)到index.php

因此,要回答自己的问题,而是帮助别人也一样,请确保您有路线文件定义为索引文件(将其命名为index.php或将.htacctess中的DirectoryIndex定义为路由文件的名称)。

也许这对其他人来说是显而易见的。 :)