This rewriting script almost works perfectly.
# This has NO bearing on your stated problem - and makes almost no sense anyway (the L should be PT for passthrough)
# don't rewrite images or scripts
RewriteRule ^(images|scripts)/ - [L]
# the rs query variable is never numeric
RewriteRule ^([a-z_-]+)\\.html /sub_folder/landing_page.php?rs=$1
No Last flag? Oh, well, don't forget that you can test your mod_rewrite using the R=301 flag (then remove it for your production server).
YGBSM? Yes, your URI, http://www.example.com/sub_folder/web.htm CANNOT redirect to http://www.example.com/sub_folder/landing_page.php?rs=web with your above code ("sub_folder" does not match "^") OR ... just what directory is your .htaccess located?
However, one of the links on the http://www.example.com/sub_folder/landing_page.php?rs=web page, specfically
<a href='skills_front_end.html'>Front End Skills</a>
does not work, in that it stays on the landing page and does not navigate.
Of course not! Your link is a relative link which is to the sub_folder/skills_front_end.html. Wait! My error! Because you're changing directory level, I must ask whether you have told your sub_folder scripts they're one level lower in your website (<base> directive or absolute links in the scripts) or believe they're in the root directory!
Now that I'm thoroughly confused, please specify directory levels and any code within the scripts which acknowledge directory level changes.
It may help you to checkout the "Relative Links Are Missing!" section of my signature's tutorial for more information about the directory level changes.