Have a look at this rule (in Rules export format):
{ "rules_before_saving_content_but_not_when_deleting" : {
"LABEL" : "Before saving content but not when deleting",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "node_presave" : [] },
"DO" : [
{ "drupal_message" : { "message" : "The path of the content being saved = [site:current-page:path]" } }
]
}
}
If you request an edit a node (say with nid=71
) your path will be node/71/edit
. If you then save the node by hitting the Save button, the above rule will show a Drupal message like so:
The path of the content being saved = node/71/edit
If you request an edit a node (say with nid=72
), your path will be node/72/edit
. But if you then decide to delete (instead of save) the node by hitting the Delete button, then no Drupal message (similar to the previous scenario above) will be shown.
This (rather basic) Rules debugging scenario, leads me to believe that, out-of-the-Rules-box, Rules Event Before saving content does NOT get triggered when a node is deleted. So whatever problem you are experiencing (when a node is deleted), it must be because of something else happening in your site, in your custom rule, or your custom code of your rule. If I was to further investigate your issue, I'd start "Rules debugging", as explained in the answer to "How can I display the value of a variable inside a condition?".
PS: a quick-and-dirty workaround for whatever issue you're experiencing, might be to check the results you get by adding an extra Rules Condition to check if the (saved) node will still have status "published" (assuming a deleted node is no longer marked as "published").