zoukankan      html  css  js  c++  java
  • apache重写中匹配?即查询时用到的字符

    公司的网站收到大量的查询,日志里大概是这样样子的

    /a/b/c.action?act=listApp_ap113/QMBLMT-0905-HUAWEI_300008413068_2200109612.cuk,现在要求要禁止人家访问时查询带有113/QMBLMT-0905-HUAWEI_300008413068_2200109612.cuk,刚开始是这样子匹配的

    RewriteEngine on
    RewriteCond %{REQUEST_URI} listApp_apd{3} .*
    RewriteRule .*listApp_apd{3}.* - [F]
    这样子是可以禁止带113/QMBLMT-0905-HUAWEI_300008413068_2200109612.cuk的访问,但不能禁止带?act=listApp_ap113/QMBLMT-0905-HUAWEI_300008413068_2200109612.cuk这样子的访问

    后来,查到由于apache url无法匹配?所以只能改方法,用QUERY_STRING

    RewriteEngine on
    RewriteCond %{QUERY_STRING} listApp_ap.+
    RewriteRule ^(.*)$ .*?%{QUERY_STRING} [F]

    这样子就能禁止人家查询时带有?act=listApp_ap113/QMBLMT-0905-HUAWEI_300008413068_2200109612.cuk

    可以查看日志tail -f  ../logs/access_log|grep -Po '(?<=listApp_ap)d{3}/[-_w.]+'   可以看到,应该是输出空白的。

  • 相关阅读:
    strcpy 详解
    c/c++中static详解
    c/c++中const详解
    12、Java中的接口
    11、java中的模板方法设计模式
    10、java中的抽象类
    9、java中的final关键字
    8、java继承中的this和super的应用
    7、java实现的两种单例模式
    6、java中的构造代码块
  • 原文地址:https://www.cnblogs.com/2myroad/p/4063159.html
Copyright © 2011-2022 走看看