我正在编写一个简单的基于 PHP 的 MVC 式框架。我希望这个框架能够安装在任何目录中。
我的 PHP 脚本抓取请求 uri 并将其分成若干段。它使段1成为控制器,而段2成为操作。当我这样做的时候,一切都很好:
http://www.example.com/mvc/module/test/
它将转到特定的模块控制器和方法。现在我有了一个默认的控制器,即主控制器,它位于主文件夹中。
现在,当我访问这个文件夹直接 http://www.example.com/mvc/home/
它将显示一个 403 forbidden
,因为这个文件夹确实存在,相反,它也应该返回到 http://www.example.com/mvc/index.php
如果我将框架安装在一个不同的文件夹,让我们说文件夹框架,它必须重定向回 http://www.example.com/framework/index.php
我想将每个文件夹和 php 文件重定向回 index.php,其他的都保持原样。
我遇到的第一个问题是它从来没有重定向到正确的文件夹,总是到域根文件夹。
这就是我试过的:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]