【问题标题】:PHP, MVC: Rewrite rule for index pagePHP,MVC:索引页面的重写规则
【发布时间】:2023-03-31 06:02:01
【问题描述】:

我正在尝试使索引页面遵守 .htaccess 中定义的重写规则(或使用我的路由文件中定义的默认路由重写 index.php 中的路径:rewrite.php)。

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

也许这很愚蠢,但我尝试将默认目录页面(.htaccess 中的目录索引)更改为空(没有工作,正如我所料)。 :)

话虽如此,我已经排除了索引页。它工作得很好,它显示了它应该做的数据,但仔细一看,我发现浏览器实际上在根页面上收到了“403 Forbidden”。

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

您可以在这里看到我正在谈论的页面:www.clubclio.eu(如您所见,数据显示良好,但您收到403 Forbidden)。

【问题讨论】:

    标签: .htaccess url-rewriting


    【解决方案1】:

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

    所以,为了回答我自己的问题但也帮助其他人,请确保您已将路由文件定义为索引文件(将其命名为 index.php 或将 .htacctess 中的 DirectoryIndex 定义为您的路由文件的名称)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多