一尘不染

防止直接访问php文件

php

我的网站上有一个说 “ check.php” 的php文件,在提交表单时执行。

说我的网站是 myweb.com ,而php文件在目录“ PHP”中

我想防止直接访问“ check.php”文件的网址,即,如果有人键入网址“ **_myweb.com/PHP/check.php_**
”,则不应执行该php文件,而应返回一条错误消息。

我试图通过在.htaccess中设置规则来阻止访问,但是即使我尝试提交表单,它也会阻止php。

.htaccess规则:

RewriteEngine on 
RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/ 
(.*)\.php$ /index.html [L]

有什么可行的方法吗?


阅读 415

收藏
2020-05-29

共1个答案

一尘不染

您可以使用PHP做到这一点

<?php
    /* at the top of 'check.php' */
    if ( $_SERVER['REQUEST_METHOD']=='GET' && realpath(__FILE__) == realpath( $_SERVER['SCRIPT_FILENAME'] ) ) {
        /* 
           Up to you which header to send, some prefer 404 even if 
           the files does exist for security
        */
        header( 'HTTP/1.0 403 Forbidden', TRUE, 403 );

        /* choose the appropriate page to redirect users */
        die( header( 'location: /error.php' ) );

    }
?>
2020-05-29