如何使用HTaccess文件保护PHP文件?



我做了一个休息PHP服务器,所以大多数路径看起来像这样

/test/home.php/product

我的目的是保护 api 并防止直接访问 PHP 文件。 经过一番研究,我发现有人问如何隐藏PHP扩展 这是他的解决方案:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

因此,新路由/test/product,并且给出与/test/home.php/product相同的响应 但这似乎没用,因为旧 URL 仍在工作

我不能阻止访问是 PHP 扩展出现在 url 中吗?

PS:我的问题与htaccess不同 阻止访问.php 并且仅允许使用重写规则

因为我要求保护包含 PHP 扩展的路由,而不是以 PHP 结尾

RewriteCond %{THE_REQUEST} /.+?.php[s?] [NC]
RewriteRule ^ - [F]

发件人:htaccess 阻止访问.php并仅允许使用重写规则

你应该做的是在 API 文件的顶部:

if(!defined('INSYSTEM')) {
exit;
}

然后制作一个允许您访问的代理脚本:

define('INSYSTEM', 1);
if($_REQUEST['page'] == 'home') {
require 'home.php';
exit;
}

最新更新