php仅支持指定ip请求,php – htaccess命令只允许来自同一服务器的请求(不指定IP)...

博主寻求在.htaccess中实现一个解决方案,仅允许来自同一服务器的请求,无论是cron作业还是AJAX,同时避免直接访问返回404。目标是通过不指定IP且灵活应对不同传出IP的情况,寻求一种基于IP首段匹配或通用范围的方法。
摘要由CSDN通过智能技术生成

我想要实现的是使用htaccess只允许来自同一服务器的请求,但是通过使用可用变量并且不指定IP来执行此操作.

目标是能够对相应文件夹中的文件运行cron作业和ajax请求,但如果尝试直接访问则返回404页面.

这是我到目前为止所拥有的:

Options -MultiViews +FollowSymLinks

RewriteEngine On

RewriteCond %{REMOTE_ADDR} !%{SERVER_ADDR}[NC]

RewriteRule ^(.*)$/error404.html [L,R=404]

这适用于ajax.如果服务器恰好使用相同的传出IP,它也适用于cronjobs,但如果服务器的传出IP与站点的IP不同,显然它将失败并返回404,因为%{REMOTE_ADDR}与%{SERVER_ADDR}不同.

一种解决方案是查看该服务器的传出IP是什么,并将其添加为另一个例外.但是,我正在寻找一种更可重用的解决方案.我尝试使用正则表达式来匹配IP的第一部分,但我没有运气.真的不知道如何去做.基本上使用正则表达式我想要实现的是:

让我们假设:

%{REMOTE_ADDR} = 192.322.122.50

%{SERVER_ADDR} = 192.322.122.1

这些是我需要找到有效比较表达式的2个变量.如果IP的第一部分相同,则该表达式将返回true.

另一种方法是指定允许的范围,但我不“知道”想要的范围是什么.我知道这是SERVER_ADDR变量的第一部分,但我不知道如何告诉服务器我的意思:D

希望我不会太困惑.最终我正在寻找的是一种确定请求是否来自与此网站相同的服务器的方法.它必须通过.htaccess文件来实现.为什么?因为受保护的文件夹还包含php脚本以外的文件,所以替代方案是动态地为所有这些文件服务并在所有条件下使用PHP.使用普通的htaccess命令会更加优雅.我只希望有办法做到这一点.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值