QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

建站经验

网站伪静态匹配去掉url带问号的,防止统计恶意刷访问

 admin  2023-04-17 11:39:11
最近百度统计频繁出现恶意刷访问的,一般的格式都是ad=违禁词,如图,因为ip是一直在变化的,所以没法通过ip封禁,所以可以考虑用伪静态的方式



(1)nginx伪静态匹配url带问号的返回首页代码:

  1. if ($request_uri ~* "^/\?ad=(.*)$"){ 
  2.     set $myarg1 $1; 
  3.     return 301 http://www.pweb123.com; 
  4.   } 
$resquest_uri表示:包含请求参数的原始URI,不包含主机名
$resquest_stringi表示:请求行中(GET请求)的参数

(2)htaccess伪静态写法
  1. RewriteCond %{QUERY_STRING} ^ad=(.+)[NC] 
  2. RewriteRule ^$ /? [R=301,L] 
RewriteRule是无法匹配到?的,所以需要通过RewriteCond来获取问号后边的所有参数


参考资料:
1、htaccess匹配知识

RewriteRule中的 Pattern 部分并不是指的整个URL,而是单纯的问号前面的部分,而且不包含域名(也不包含最前面的一个/)。
如果 Pattern 规则能匹配问号前的地址,则整个地址里的问前地址部分就会被 替换掉,原地址后面的参数部分不变。
如果我们想在htaccess URL Rewrite里校验参数部分,可以使用 %{QUERY_STRING} 内置变量。
RewriteCond %{QUERY_STRING}      b=([0-9]+)      [NC]
RewriteRule ^a\.html$            /c.html?d=%1      [L,NC]
注意,RewriteCond 里的正则表达式捕捉数据要通过 % 符号获取向后引用。 而 RewriteRule 里的则需要使用 $ 符号获取。

2、nginx伪静态知识
nginx在匹配伪静态规则的时候同样不会去匹配问号后边的参数,所以需要用到一个内置参数
$query_string      解释:请求行中(GET请求)的参数;
$request_uri  解释:包含请求参数的原始URI,不包含主机名,如:"/change.php?id=163",不能修改。

例:
  1. if ( $query_string ~ "id=(baidu)(.*)$" ) 
  2.         { 
  3.         rewrite ^/ http://www.baidu.com/; 
  4.  } 
这个表示匹配id=baidu开头的 跳转到百度首页

例:
  1. if ( $request_uri ~ "/(.*).html\?id=163" ) 
  2.         { 
  3.         rewrite ^/ http://www.163.com/; 
  4.  } 
这个表示匹配整个url中带 id=163的跳转到163.com
也可以带指定参数,例:
  1. if ($request_uri ~* "^/index.php\?moduleid=(\d+)&itemid=(\d+)$") { 
  2.           set $myarg1 $1; //表示第一个参数
  3.           set $myarg2 $2; //表示第二个参数
  4.           rewrite .* https://www.***.com/$myarg1-0-$myarg2-1.html? permanent; 
  5.  } 
permanent表示问号后边的所有参数,默认也会给你带上的,

同理还可以直接跳转404页面
  1. if ($request_uri ~ "^/\?ad=(.*)$") { 
  2.    return 404; 
更多资料整理中
伪静态我也是一知半解,如果有理解不对之处,敬请指正



¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《网站伪静态匹配去掉url带问号的,防止统计恶意刷访问》发布于石头博客文章,作者:admin,如若转载,请注明出处:https://www.pweb123.com/news/jingyan/940.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序