### ctl ### ruleRemoveById { type => "action", comment => "ruleRemoveById existing rule across phases", conf => qq( SecRuleEngine On SecAction "phase:2,id:666,deny" SecAction "phase:1,pass,ctl:ruleRemoveById=666" ), match_log => { }, match_response => { status => qr/^200$/, }, request => new HTTP::Request( GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt", ), }, { type => "action", comment => "ruleRemoveById future rule across phases", conf => qq( SecRuleEngine On SecAction "phase:1,pass,ctl:ruleRemoveById=666" SecAction "phase:2,id:666,deny" ), match_log => { }, match_response => { status => qr/^200$/, }, request => new HTTP::Request( GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt", ), }, { type => "action", comment => "ruleRemoveById future rule same phase", conf => qq( SecRuleEngine On SecAction "phase:1,pass,ctl:ruleRemoveById=666" SecAction "phase:1,id:666,deny" ), match_log => { }, match_response => { status => qr/^200$/, }, request => new HTTP::Request( GET => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt", ), },