php - 防止直接 url 访问 php 文件

标签 php html .htaccess server

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

假设我的网站是 "myweb.com" 并且 php 文件在目录 "PHP"中

我想阻止对“check.php”文件的直接 url 访问,即如果有人键入 url“myweb.com/PHP/check.php”,则不应执行 php 文件,而应返回一条错误消息。

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

.htaccess 规则:

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

有什么办法可以做到吗?

最佳答案

你可以用 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' ) );

    }
?>

关于php - 防止直接 url 访问 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33999475/

相关文章:

javascript - 图片库悬停叠加高度问题

javascript - 重定向到不同页面时无法使 JS 脚本工作

php - Backbone.js 同步 - PHP 返回

javascript - POST 未定义索引 $v3

html - 无法使用 301 和 .htaccess 重定向

apache - 如何在 Nuxt 路由器中手动生成带有 .htaccess 404 页面回退的页面

.htaccess - htaccess 中的元标记关键字?

php - fatal error : Call to undefined function mysqli_connect

java - 自动缩进 Java 和 HTML 文件的脚本或程序

html - 为什么两个边框框 50% 的 div 不是并排的?