SSL and www to non-www redirection works only on homepage – WordPress

You’ve put the directives in the wrong place, the canoncial redirects need to go before the # BEGIN WordPress section (the front-controller), otherwise, they are not going to be processed for anything other than physical files and directories. (The “homepage” maps to a physical directory, so is redirected).

For some reason you have also repeated the WordPress front-controller section, with a slight difference. You should only have one.

# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans

This section is also in the wrong place and needs to go before the # BEGIN WordPress section. You should remove the RewriteEngine and RewriteBase directives from this block.