WordPress rewrite rules not working

You need to flush rewrite rules after adding or modifying rewrite rules in WordPress.

flush_rewrite_rules() can be used to flush rules.

For more info check these links :

https://codex.wordpress.org/Rewrite_API/add_rewrite_rule
https://codex.wordpress.org/Function_Reference/flush_rewrite_rules