我在.htaccess中阻止了一些域名引荐到我的网站,如下所示
RewriteCond %{HTTP_REFERER} example1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} example2\.com [NC]
我是否可以通过此推介检查网址请求的次数?
我检查了我的日志文件&没找到任何。所以..我认为它们被阻止,日志文件不会记录它。
我是对的吗?
答案 0 :(得分:1)
使用[F]
标志时,不会执行任何脚本。 Apache发送标头,不做任何其他事情。
RewriteCond %{HTTP_REFERER} example1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} example2\.com [NC]
RewriteRule ^ - [F,L]
这些请求仍会记录在您的访问日志中,就像任何其他请求一样。我相信所请求的资源以及referer标头都显示在此日志中,因此您可以自动处理此文件以查找包含特定字符串的行。
如果要记录访问日志中没有的特定信息,则需要采用不同的方法。将每个请求重写为文件,但不要使用[F]
标志。相反,在php中发送相应的标头并在您重写的文件中记录:
RewriteCond %{HTTP_REFERER} example1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} example2\.com [NC]
RewriteCond %{REQUEST_URI} !/log\.php
RewriteRule ^ log.php [L]
使用log.php
<?php
$f = fopen( "log.txt", "a" );
fwrite( $f, time() . "\n" );
header('HTTP/1.0 403 Forbidden');