使用htaccess将所有重定向到index.php

使用htaccess将所有重定向到index.php

我正在编写一个简单的基于PHP的MVC-ish框架。我希望这个框架能够安装在任何目录中。

我的PHP脚本抓取请求uri并将其分割成段。它使第1段成为控制器,使第2段成为动作。当我这么做的时候,一切都很好:

http://www.example.com/mvc/module/test/

它将转到特定的模块控制器和方法。现在我有一个默认控制器,HOME控制器,它位于文件夹HOME中。

现在当我直接访问这个文件夹时http://www.example.com/mvc/home/它将显示一个禁止的403,因为这个文件夹确实存在,相反,它也应该返回到http://www.example.com/mvc/index.php

如果我已经将框架安装在另一个文件夹中,那么让我说一下文件夹框架,它必须重定向回http://www.example.com/framework/index.php

我想将每个文件夹和php文件重定向回index.php,让其他所有东西都保持原样。

我遇到的第一个问题是,它永远不会重定向到正确的文件夹,总是指向域根文件夹。

这就是我试过的:

RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule . index.php [L]


沧海一幻觉
浏览 492回答 3
3回答

慕容森

将不存在的一切重定向到index.php,您也可以使用FallBackResource指令FallbackResource /index.php它的工作原理与ErrorDocument,当您请求服务器上不存在的路径或文件时,指令会悄悄地将请求禁止到index.php .如果你想重定向一切(including existant files or folders)到index.php,您可以使用以下内容:RewriteEngine onRewriteRule ^((?!index\.php).+)$ /index.php [L]注意模式^((?!index\.php).+)$与任何uri匹配,除非index.php为了防止无限循环错误,我们排除了目标路径。
打开App,查看更多内容
随时随地看视频慕课网APP