php中的否是什么,javascript – 告诉Apache是​​否在请求中执行PHP

我正在使用PHP与Apache,并想知道是否有一种方法从客户端指示不应执行/解析所请求的PHP文件.按照标准,我希望在请求时执行所有PHP文件,但我想要一种方法从客户端指示不应该执行该文件.

一个很好的解决方案是使用JavaScript在请求中提供额外的头,然后在.htaccess文件中写一些代码来检查头是否存在,以及是否告诉apache不执行文件并将其作为文本提供.

使用GET参数或其他东西也没关系.

这可能吗?如果是这样,怎么样?

解决方法:

supply an extra header in the request [using JavaScript] and then write some code in a .htaccess file to check if the header is present

您可以让Apache检查此(秘密)标头,并在内部将请求重写为viewAsSource.php类型的文件,然后读取REQUEST_URI(或传递的查询字符串参数)并返回文件源.与@LucasKrupinski建议类似,除了您不需要在PHP文件本身中包含任何内容.

例如,在根.htaccess文件中:

RewriteEngine On

# Block direct access to any file in the /tools directory

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteRule ^tools/ - [F]

# Display PHP source...

RewriteCond %{HTTP:X-Action} ^display-source$

RewriteCond %{REQUEST_FILENAME} -f

RewriteRule (.+\.php)$tools/display-source.php?url=$1 [L]

对于所有.php请求,这将检查具有值“display-source”的X-Action HTTP请求标头以及所请求的文件是否存在.如果满足这些条件,则将请求内部写入/tools/display-source.php脚本,并在url参数中传递URL.您可以改为检查$_SERVER [‘REQUEST_URI’]超全局,但请注意,这还包括在请求中传递的任何查询字符串.

然后,在display-source.php中,类似于:

$url = isset($_GET['url']) ? $_GET['url'] : null;

if (isset($url)) {

$file = $_SERVER['DOCUMENT_ROOT].'/'.$url;

// Validate $file....

// :

highlight_file($file);

}

标签:htaccess,javascript,php,apache

来源: https://codeday.me/bug/20190823/1700410.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值