为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
沧海一幻觉 2019-08-03 07:03:59
使用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]
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

将不存在的一切重定向到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为了防止无限循环错误,我们排除了目标路径。




查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 487 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信