Presumably your .htaccess file is located in the /abc subdirectory? In which case you can do something like the following to force HTTPS on all sub-pages, except the homepage:
This needs to go at the very top of your .htaccess file:
RewriteCond %{HTTPS} !on
RewriteRule !^(index\.php)?$ https://example.com%{REQUEST_URI} [R=302,L]
This assumes that the SSL cert is installed directly on your application server.
The negated RewriteRule pattern !^(index\.php)?$ only matches non-empty (or not index.php) URL-paths, so this excludes the homepage.
Change the 302 (temporary) to 301 (permanent) only when you are sure it’s working OK, to avoid caching issues. Clear your browser cache before testing.
Aside:
RewriteBase /abc/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /abc/index.php [L]
Since you have set the RewriteBase directive, you can remove the directory-prefix from the RewriteRule substitution (this is what the RewriteBase directive does):
RewriteRule . index.php [L]
However, since your .htaccess file is in the /abc subdirectory, then you don’t actually need the RewriteBase directive or the directory-prefix.