问题描述
我在我的 htaccess 文件中使用此代码来阻止从特定网站到我网站的流量并且它有效:
RewriteEngine On
SetEnvIfNoCase Referer "example.com" bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer
现在我要为这段代码设置一个时间,例如,特定网站的访问者只能在 08:00 到 17:00 访问我的网站
我试过了:
RewriteEngine On
RewriteCond %{TIME_HOUR}%{TIME_MIN} >0800
RewriteCond %{TIME_HOUR}%{TIME_MIN} <1700
SetEnvIfNoCase Referer " example.com " bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer
但是好像不行,访问者仍然在设置的时间戳之间被屏蔽
谢谢
罗伯特
解决方法
您不能将 SetEnv
与 RewriteRule
一起使用,因为这两个指令是两个不同 apache 模块的一部分。您可以使用 mod-rewrite
来实现您想要的:
RewriteEngine On
RewriteCond %{TIME_HOUR}%{TIME_MIN} >=0800
RewriteCond %{TIME_HOUR}%{TIME_MIN} <=1700
RewriteCond %{HTTP_REFERER} example\.com [NC]
RewriteRule ^ - [R=403,L]