我做了一个休息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;
}